如何从当前非默认目录导入模块

2024-05-13 20:04:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Python2.7。我对python langauge比较陌生。我有两个python模块-“Trailcrest.py”和“Glyph.py”,它们都在同一个文件夹中,但不在Python27文件夹中。

我需要将“Trailcrest.py”导入“Glyph.py”,但我得到的消息是“不存在这样的模块”。

此外,无论我使用什么方法导入模块,都不需要依赖于固态路径。这个程序是跨平台的,路径可以根据用户的偏好进行更改。但是,这两个模块始终位于同一文件夹中。

我该怎么做?


Tags: 模块方法用户py路径程序文件夹消息
3条回答

为了详细说明Ferdinand Beyer的answersys.path是默认模块导入程序检查的文件位置列表。有些,尽管不是所有python安装都会将当前目录或__main__模块的目录添加到路径中。要确保与给定模块相关的路径在该模块中可导入,请执行以下操作:

import os.path, sys
sys.path.append(os.path.dirname(__file__))

但这样的东西不应该成为“生产”产品。相反,使用类似distutils的方法将模块的包安装到python站点包目录中。

这也可以使用环境变量PYTHONPATH来实现,环境变量也会影响Python的搜索路径。这可以在shell脚本中完成,这样就不需要更改Python文件。如果要从当前工作目录导入,请使用bash中的.符号:

export PYTHONPATH=.
python python_prog.py

如果在同一个文件夹中有Trailcrest.pyGlyph.py,则将其中一个导入另一个文件夹非常简单:

import Trailcrest
import Glyph

如果这不起作用,那么Python设置似乎有问题。您可能需要检查sys.path中的内容。

import sys
print sys.path

相关问题 更多 >