【问题标题】:python import from relative paths从相对路径导入python
【发布时间】:2017-02-04 22:46:59
【问题描述】:

关于设置相对路径导入的问题。我有一堆文件(模块) '/用户/我的名字/桌面/programX_files/programX/common/ 如:

  1. /Users/myname/Desktop/programX_files/programX/common/constants.py
  2. /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


    【解决方案1】:

    您的代码应如下所示:

    import sys
    # set path to folder
    sys.path.append('/Users/myname/Desktop/programX_files/')
    # now import files
    import programX.common.constants.py as constants
    

    【讨论】:

      猜你喜欢
      • 2015-01-07
      • 2011-11-22
      • 2013-07-12
      • 1970-01-01
      • 1970-01-01
      • 2010-09-21
      • 1970-01-01
      • 2015-09-13
      相关资源
      最近更新 更多