【发布时间】:2017-02-04 22:46:59
【问题描述】:
关于设置相对路径导入的问题。我有一堆文件(模块) '/用户/我的名字/桌面/programX_files/programX/common/ 如:
- /Users/myname/Desktop/programX_files/programX/common/constants.py
- /Users/myname/Desktop/programX_files/programX/common/util/misc.py
每个模块都有一行可以根据需要从 common/ 目录中导入其他模块。例子:
(/Users/myname/Desktop/programX_files/programX/common/constants.py) 中的“constants.py”包含以下行:
- 将 programX.common.util.misc 导入为 util_misc
并且(/Users/myname/Desktop/programX_files/programX/common/util/misc.py)中的“misc.py”包含以下行:
- 将 programX.common.constants 导入为常量
现在我想使用这些模块。如何正确让 python 知道设置正确的路径依赖项,以便它知道查看 (/Users/myname/Desktop/programX_files/programX/common/) 和 common 中的子目录?
我尝试附加路径,但它不起作用:
>>> import sys
>>> sys.path.append('/Users/myname/Desktop/programX_files/programX/')
>>> import programX.common.constants.py as constants
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named programX.common.constants.py
>>>
>>> sys.path.append('/Users/myname/Desktop/programX_files/programX/common/')
>>> sys.path.append('/Users/myname/Desktop/programX_files/programX/common/util')
>>>
>>> import programX.common.constants.py as constants
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named programX.common.constants.py
>>>
>>> import os
>>> os.getcwd()
'/Users/myname'
>>>
>>> import Desktop.programX_files.programX.common.constants.py as constants
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named Desktop.programX_files.programX.common.constants.py
>>>
我猜这可能是一些相对简单的解决方案,但我无法弄清楚。感谢您的回答。
【问题讨论】:
标签: python-2.7 import io path