从另一个目录导入类-Python
当前位置:ProjectName/src 类别位置:项目名称/工厂模块/工厂类别 尝试1:从另一个目录导入类-Python,python,pydev,Python,Pydev,当前位置:ProjectName/src 类别位置:项目名称/工厂模块/工厂类别 尝试1: from FactoryClass1 import FactoryClass1 尝试2: import sys sys.path.append(path_to_classes_folder) from FactoryClass1 import FactoryClass1 然而,我不断得到“ImportError:没有名为PointSet的模块” 为了能够在类中使用函数,应该如何编写import语句 您
from FactoryClass1 import FactoryClass1
尝试2:
import sys
sys.path.append(path_to_classes_folder)
from FactoryClass1 import FactoryClass1
然而,我不断得到“ImportError:没有名为PointSet的模块”
为了能够在类中使用函数,应该如何编写import语句 您可以尝试以下方法:
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模块(应该在目录中包含\uuuu init\uuuu.py
文件)。如果不是,则创建一个空的
或者,在Python 3中,您可以使用
exec()
,以内联方式加载类,例如:
exec(open(filename).read())
在Python 2中:execfile()
见:
如果从命令行运行脚本,还可以通过定义
PYTHONPATH
变量来指定Python路径,以便Python可以在提供的目录中查找模块,例如
PYTHONPATH=$PWD/FooDir ./foo.py
对于其他解决方案,请检查:是的,我在发布之前先搜索了,但还没有成功使其工作。
项目名称
目录是否只包含Python源代码?如果是这样,您可以考虑将其转换为包。工厂模块和类预期如何使用?是的,您可以随意使用sys.path
,但除非您知道自己在做什么,否则您可能真的会破坏您未来的可伸缩性。提供有关项目名称
内容的更多信息。您的main
位于何处?项目名称还包含其他文件格式(txt、pts、csv、dxf…),我只需将类作为模块导入,并使用它们包含的函数。。Main位于src/trynewfunction中我尝试过,得到的第一个路径是:“C:\\Users\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\workspace\\src\\Factory Modules\\Factory Classes”“我仍然收到相同的“导入错误:否”module@Elia也许你的模块不是模块。确保模块的添加路径包含\uuuuuuuuuuuuuuuuuuuuuuuuuuuupy
。如果我在类文件夹中创建新的xx.py
,然后使用:导入FactoryClass1
导入它,那么一切看起来都很好。但是,我无法从该文件夹外的xx.py
文件导入它。@Elia从Python导入的每个模块都应该包含\uuuu init\uuuu.py
。还要记住sys中的所有路径。path
应该是绝对路径,所以可能您使用的是相对路径。若你们有一些具体的非工作案例,那个么重新编辑问题,并提供更多关于类位置的详细信息(在这种情况下它不工作)。。。这没有任何意义,但它起了作用。。谢谢你@kenorb