将 python 文件夹转换为包:`ModuleNotFoundError`
Transform a python folder into a package: `ModuleNotFoundError`
假设在文件夹 my_package
中,我有三个文件:
__init__.py
,空白
file1.py
,包含一个函数function1
file2.py
,包含导入语句:from file1 import function1
然后,在另一个目录中,当我使用 import my_package.file2 as file2
时,我有一个 ModuleNotFoundError
来自语句 from file1 import function1
的行。
显然,我在某处做错了。但是哪里 ?我给出的 MWE 很小,但我在 my_package
文件夹中添加了很多 python 文件,其中一些文件相互导入。我正在尝试将此目录更改为可以从其他地方导入的包,这就是我添加 __init__.py
blanck 文件的原因,但它似乎无法那样工作。
检查这个树结构。
my_package
|
'----- __init__.py
'----- file1.py
'----- file2.py
Script (somewhere in your system)
|
'--- test.py
当您在 test.py 中的另一个目录中导入 my_package(将 my_package.file2 导入为文件 2)时,它会在其目录中查找名为 my_package 的目录当前路径..(即在脚本文件夹内)
因为脚本文件夹中不存在 my_package,您将收到错误 ModuleNotFoundError。
所以在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.
我想我自己找到了解决方案:我在文件夹中添加了一个包含适当内容的 setup.py 文件,然后我 运行 pip -m my_package
,允许我从任何地方导入它。 .
假设在文件夹 my_package
中,我有三个文件:
__init__.py
,空白file1.py
,包含一个函数function1
file2.py
,包含导入语句:from file1 import function1
然后,在另一个目录中,当我使用 import my_package.file2 as file2
时,我有一个 ModuleNotFoundError
来自语句 from file1 import function1
的行。
显然,我在某处做错了。但是哪里 ?我给出的 MWE 很小,但我在 my_package
文件夹中添加了很多 python 文件,其中一些文件相互导入。我正在尝试将此目录更改为可以从其他地方导入的包,这就是我添加 __init__.py
blanck 文件的原因,但它似乎无法那样工作。
检查这个树结构。
my_package
|
'----- __init__.py
'----- file1.py
'----- file2.py
Script (somewhere in your system)
|
'--- test.py
当您在 test.py 中的另一个目录中导入 my_package(将 my_package.file2 导入为文件 2)时,它会在其目录中查找名为 my_package 的目录当前路径..(即在脚本文件夹内)
因为脚本文件夹中不存在 my_package,您将收到错误 ModuleNotFoundError。
所以在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.
我想我自己找到了解决方案:我在文件夹中添加了一个包含适当内容的 setup.py 文件,然后我 运行 pip -m my_package
,允许我从任何地方导入它。 .