我已经看到许多尝试回答这个问题的尝试,但是没有一个成功地在所有情况下为我提供帮助。我的目录如下所示:
folder1
-file1.py
-folder2
-file2.py
我从file2.py
的许多SO答案中尝试了以下方法:
import sys
sys.path.insert(1, '.../folder1/file1.py')
from file1 import funx
当file2在层次结构中位于file1上方时,或者如果它们位于同一文件夹中,则可以使用此方法,但是在上述层次结构中,我得到了ModuleNotFoundError
。
解决这个问题有帮助吗?我最感兴趣的是看看是否有一种方法可以将模块放在一个可以像其他python模块(sklearn
,pandas
等)一样调用的位置,而不管我的位置如何。目录。谢谢!
答案 0 :(得分:0)
如果您要创建用于全局访问的模块, 在控制台中-
$python
$python
>>> import sys
>>> print(sys.path)
输出可能类似于-
C:\\Python27\\lib\\site-packages
-在Windows中
或
/usr/bin/python2.7/site-packages
-在Mac中
将要全局访问的文件复制到此位置。
在您的程序中,您可以直接导入文件,例如---
from file1 import funx