将python文件夹转换为包:`ModuleNotFoundError`
假设在文件夹将python文件夹转换为包:`ModuleNotFoundError`,python,python-module,Python,Python Module,假设在文件夹my_package中,我有三个文件: \uuuuu init\uuuuuuuuuuuuuuupy,布兰克 file1.py,包含函数function1 file2.py,包含导入语句:来自file1导入函数1 然后,从另一个目录中,当我使用import my_package.file2 as file2时,我有一个ModuleNotFoundError来自file1 import function 1的语句 显然,我在什么地方做错了什么。但是在哪里呢?我给出的MWE很小,但我在
my_package
中,我有三个文件:
,布兰克\uuuuu init\uuuuuuuuuuuuuuupy
,包含函数file1.py
function1
,包含导入语句:file2.py
来自file1导入函数1
import my_package.file2 as file2
时,我有一个ModuleNotFoundError
来自file1 import function 1的语句
显然,我在什么地方做错了什么。但是在哪里呢?我给出的MWE很小,但我在myu包
文件夹中附加了很多python文件,其中一些文件相互导入。我正试图将此目录更改为一个可以从其他地方导入的包,这就是为什么我添加了\uuu init\uuuuu.py
blank文件,但它似乎不起作用。检查此树结构
my_package
|
'----- __init__.py
'----- file1.py
'----- file2.py
Script (somewhere in your system)
|
'--- test.py
当您在另一个目录(比如test.py)中导入my_package(将my_package.file2导入为file2)时,它会在其当前路径中查找名为my_package的目录。。(即脚本文件夹内)
由于脚本文件夹中不存在my_程序包,您将获得错误模块NotFoundError
因此,在test.py中编写如下所示的代码
import sys
sys.path.append("/home/MyFiles/my_package") # absolute path of the my_package folder
import file2
# Now use file2 and work on it
# all other modules/files in my_package folder can also be imported.
我想我自己找到了解决方案:我在文件夹中添加了一个带有propper内容的setup.py文件,然后运行pip-m my_package
,允许我从任何地方导入它。您的目录结构是什么?不幸的是,这很重要!