Python:从命令行运行时包含库文件夹

时间:2018-12-13 10:45:53

标签: python python-3.x python-2.7

我有一个目录结构:

root_dir
 ├── src
 │   └── p1.py
 └── lib
     ├── __init__.py
     ├── util1.py
     └── util2.py

我想运行src/p1.py,它使用lib/util1.py,并使用导入语句import lib.util1 as u1

当我使用PyCharm时,它运行良好,但我也想从命令行运行它。如何从命令行运行程序?

我尝试过cd root_dir,然后尝试过python src/p1.py

但是会产生以下错误:

Traceback (most recent call last):
  File "./src/p1.py", line 1, in <module>
    import lib.util1 as u1
ImportError: No module named lib.util1

如何从命令行运行python程序src/p1.py

编辑:基于@Sumedh Junghare的建议,在注释中,我在lib文件夹中添加了__init__.py。但是仍然会产生相同的错误!

2 个答案:

答案 0 :(得分:2)

您需要执行以下步骤

  1. 在lib文件夹中添加__init__.py

将此行添加到顶部的p1.py文件中

import sys
sys.path.append('../') 
import lib.util1 as u1

从src目录运行p1.py文件。希望它能工作。

编辑:

如果您不想添加sys.path.append('../'),请从此资源在env-var中设置PYTHONPATH。 How to add to the pythonpath in Windows?

答案 1 :(得分:0)

改进 Saiful 的回答,您可以执行以下操作,这将允许您从任何工作目录运行您的程序

import sys
import os
sys.path.append(os.path.join(os.path.realpath(os.path.dirname(__file__)), "../"))
import lib.util1 as u1