我正在使用Python 2.7。我是蟒蛇语言的新手。我有两个python模块 - “Trailcrest.py”和“Glyph.py”,它们都在同一个文件夹中,但不在Python27文件夹中。
我需要将“Trailcrest.py”导入“Glyph.py”,但我收到的消息是“没有这样的模块存在”。
此外,我用于导入模块的任何方法都不需要依赖于固态路径。该程序是跨平台的,可以根据用户的喜好更改路径。但是,这两个模块将始终位于同一个文件夹中。
我该怎么做?
答案 0 :(得分:3)
如果您在同一文件夹中有Trailcrest.py
和Glyph.py
,则将其中一个导入到另一个文件夹中就像这样简单:
import Trailcrest
import Glyph
如果这不起作用,那么您的Python设置似乎有问题。您可能想查看sys.path
中的内容。
import sys
print sys.path
答案 1 :(得分:2)
要详细说明Ferdinand Beyer的answer,sys.path
是默认模块导入器检查的文件位置列表。虽然不是所有的python安装都会将当前目录或__main__
模块的目录添加到路径中。要确保相对于给定模块的路径可在该模块中导入,请执行以下操作:
import os.path, sys
sys.path.append(os.path.dirname(__file__))
但类似的东西不应该成为“生产”产品。相反,使用distutils
之类的东西将模块的软件包安装到python site-packages目录中。
答案 2 :(得分:1)
这也可以使用环境变量PYTHONPATH
来实现,这也会影响Python的搜索路径。这可以在shell脚本中完成,这样就不需要更改Python文件。如果要从当前工作目录导入它,请在bash中使用.
表示法:
export PYTHONPATH=.
python python_prog.py