从另一个目录导入类 - Python

时间:2015-04-04 14:34:29

标签: python pydev

当前位置:ProjectName / src

类位置:ProjectName / Factory Modules / Factory Classes

尝试1:

from FactoryClass1 import FactoryClass1

尝试2:

import sys
sys.path.append(path_to_classes_folder)
from FactoryClass1 import FactoryClass1

但是我一直得到' ImportError:没有名为PointSet的模块'。

如何编写import语句以便能够使用类中的函数?

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方式:

import os.path, sys
# Add current dir to search path.
sys.path.insert(0, "dir_or_path")
# Add module from the current directory.
sys.path.insert(0, os.path.dirname(os.path.abspath(os.path.realpath(__file__))) + "/dir")

将您的目录添加到Python搜索路径。然后你可以照常导入。

要查看已添加的路径,请按以下方式检查:

import sys
from pprint import pprint
pprint(sys.path)

如果仍然无法正常工作,请确保您的模块是有效的Python模块(目录中应包含__init__.py文件)。如果不是,请创建空的。


或者只是加载内联类,在Python 3中,您可以使用exec(),例如:

exec(open(filename).read())

在Python 2中:execfile()

请参阅:Alternative to execfile in Python 3.2+?


如果从命令行运行脚本,还可以通过定义PYTHONPATH变量来指定Python路径,这样Python就可以在提供的目录中查找模块,例如

PYTHONPATH=$PWD/FooDir ./foo.py

对于替代解决方案,请检查:How to import other Python files?