我有一个目录结构:
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
。但是仍然会产生相同的错误!
答案 0 :(得分:2)
您需要执行以下步骤
__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