我在为项目设置环境时遇到问题。
我想要这个结构来满足一些要求:
lib
\__module_folder_1
\_module_1.py
\__module_folder_2
\_module_2.py
...
script
\__ script_folder_1
\_ main_1.py
\__ script_folder_2
\_ main_2.py
...
所以我在 .pth
中创建了一个新的 C:\Python39\Lib\site-packages\random-name.pth
文件
我使用以下方法验证它是否包含在路径中:
import sys
print(sys.path)
输出我在 .pth
文件中写的路径。输出示例:
['C:\\myDir\\WhichContainsLibFolder, 'C:\\Python39\\python39.zip', 'C:\\Python39\\DLLs', 'C:\\Python39\\lib', 'C:\\Python39'
'C:\\Python39\\lib\\site-packages' 'C:\\Python39\\lib\\site-packages\\win32', 'C:\\Python39\\lib\\site-packages\\win32\\lib', 'C:\\Python39\\lib\\site-packages\\Pythonwin']
所以现在我尝试从 module_2 导入 module_1:
module_2.py
:
import module_folder_1.module_1 as importTest
我将 main_1 放在与脚本文件夹相同的级别:
lib
\__module_folder_1
\_module_1.py
\__module_folder_2
\_module_2.py
main_1.py <----- THIS
script
\__ script_folder_1
\_
\__ script_folder_2
\_ main_2.py
...
然后我导入 main 1
模块 2 使用相对路径,忽略我写的 .pth file
:
main.py
import lib.module_folder_2.module_2 as moduleImportTest
这是有效的。 module_2 可以使用我通过 .pth
添加到 sys.path 的路径访问 module_1。
现在我将 main.py
移到我想要的原始文件夹中,即 script_folder_1
中问题开头的那个。
而且我无法再使用与库中相同的导入来访问 module_2
:
main_1.py
import module_folder_2.module_2 as moduleImportTest
我收到错误:
ModuleNotFoundError: No module named 'module_folder_2.module_2'
当我尝试使用阻止脚本工作的 sys.path 导入脚本和模块时,脚本和模块之间有什么变化?