Pipenv 和 ModuleNotFoundError
Pipenv and ModuleNotFoundError
我花了几个小时研究这个问题,但没有成功。
我看过各种 SO 讨论,none 似乎解决了我的问题,所以我的问题是出于纯粹的挫败感...
我正在尝试在 windows 批处理文件中启动脚本。问题是当我执行脚本时失败,因为它找不到一些使用的模块。
经过各种尝试,我发现批处理文件方面在现阶段似乎无关紧要。
所以,暂时忽略批处理文件,如果我 运行 这样的脚本
pipenv run python myscript.py
有效。如果我 运行 以下它不会
path-to-env\Scripts\activate
python myscript.py
它 returns 一个错误 ModuleNotFoundError: 没有名为 'xxx' 的模块
它激活 venv OK,但有些地方不对,因为它找不到脚本中使用的代码
在我的IDE(视觉代码)中一切正常
我确实有一个相当复杂的目录结构,但考虑到 IDE 和“pipenv 运行 python myscript.py”都按预期工作,这一定是由于别的。
关于我需要寻找的地方有什么想法或指示吗?恐怕我对 pipenv 的理解不足以解决这个问题 ;)
编辑
在我尝试解决这个问题时,我添加了 PYTHONPATH= 行。到我的 .env 文件。这似乎是允许这条线工作的原因:
pipenv run python myscript.py
如果我删除它,那么上面的代码也会生成 ModuleNotFoundError
好的,在尝试了很多不同的组合之后,我终于设法让它工作了。
虽然我不知道为什么这个解决方案有效而其他人没有..
需要两个批处理文件。
启动 python 脚本,其中包含这样一行
python myscript.py
另一个是通过 pipenv 创建环境,然后调用第一个批处理文件
会有这样一行
pipenv run \path\to\first\batchfile.bat
此组合有效,并且可以从 Windows 任务计划程序
中成功调用
我花了几个小时研究这个问题,但没有成功。 我看过各种 SO 讨论,none 似乎解决了我的问题,所以我的问题是出于纯粹的挫败感... 我正在尝试在 windows 批处理文件中启动脚本。问题是当我执行脚本时失败,因为它找不到一些使用的模块。
经过各种尝试,我发现批处理文件方面在现阶段似乎无关紧要。
所以,暂时忽略批处理文件,如果我 运行 这样的脚本
pipenv run python myscript.py
有效。如果我 运行 以下它不会
path-to-env\Scripts\activate
python myscript.py
它 returns 一个错误 ModuleNotFoundError: 没有名为 'xxx' 的模块 它激活 venv OK,但有些地方不对,因为它找不到脚本中使用的代码
在我的IDE(视觉代码)中一切正常
我确实有一个相当复杂的目录结构,但考虑到 IDE 和“pipenv 运行 python myscript.py”都按预期工作,这一定是由于别的。
关于我需要寻找的地方有什么想法或指示吗?恐怕我对 pipenv 的理解不足以解决这个问题 ;)
编辑
在我尝试解决这个问题时,我添加了 PYTHONPATH= 行。到我的 .env 文件。这似乎是允许这条线工作的原因:
pipenv run python myscript.py
如果我删除它,那么上面的代码也会生成 ModuleNotFoundError
好的,在尝试了很多不同的组合之后,我终于设法让它工作了。 虽然我不知道为什么这个解决方案有效而其他人没有..
需要两个批处理文件。
启动 python 脚本,其中包含这样一行
python myscript.py
另一个是通过 pipenv 创建环境,然后调用第一个批处理文件
会有这样一行
pipenv run \path\to\first\batchfile.bat
此组合有效,并且可以从 Windows 任务计划程序
中成功调用