尝试运行从 github 下载的项目。运行虚拟环境。由于其自冲突的requirements.txt,安装过程非常艰苦,我设法pip安装所有包要求,但我仍然在几个模块上收到ModuleNotFoundError。
我通过在 powershell 中导航到我的项目目录并运行来创建并激活我的虚拟环境
python -m venv .venv
,然后.venv/Scripts/activate
。
激活 venv 后: 我运行了
pip install -r requirements.txt
并手动解决了冲突。这些冲突都不是错误中命名的模块。
我按照项目的说明运行了 python -u main.py
。
这会产生许多 ModuleNotFoundErrors。
我的下一步是确保 pip install 和 python 可执行文件是我想要运行的,所以我运行了
where.exe python
,其中显示 C:\[mypath]\.venv\Scripts\python.exe
和 python -m site
还显示了预期的路径。
我运行了
python -m pip --version
,显示来自C:\[mypath]\.venv\lib\site-packages\pip (python 3.9)
的pip 24.0,这对我来说似乎是正确的
Pip 列表显示所有已安装的软件包。
我不明白为什么Python找不到这些模块。
编辑: 当我单独运行每个 .py 文件时,一切似乎都工作正常。当我尝试从 main.py 一次运行整个过程时,我只会收到 ModuleNotFoundErrors。
主文件看起来像这样:
import subprocess
files_to_run = [
'file1.py',
'file2.py',
'file3.py'
]
for file in files_to_run:
subprocess.run(['python', file])
所以我想我解决了这个问题:
问题似乎出在主文件中,当 subprocess.run 运行 python 命令时,它从用户安装运行 python.exe,而不是从虚拟环境运行。指定 venv python.exe 的路径解决了该问题。