【问题标题】:Pipenv and ModuleNotFoundErrorPipenv 和 ModuleNotFoundError
【发布时间】:2019-10-15 15:46:33
【问题描述】:

我花了几个小时研究这个问题,但没有任何成功。 我查看了各种 SO 讨论,但似乎没有一个可以解决我的问题,所以出于纯粹的挫败感,这是我的问题...... 我正在尝试在 Windows 批处理文件中启动脚本。问题是当我这样做时脚本失败了,因为它找不到一些使用的模块。

经过各种尝试,我发现在这个阶段,批处理文件方面似乎无关紧要。

所以,暂时忽略批处理文件,如果我像这样运行脚本

pipenv 运行 python myscript.py

它有效。如果我运行以下它不会

环境路径\脚本\激活

python myscript.py

它返回一个错误 ModuleNotFoundError: No module named 'xxx' 它激活了venv OK,但是有些地方不对,因为它找不到脚本中使用的代码

在我的 IDE(可视化代码)中一切正常

我确实有一个相当复杂的目录结构,但鉴于 IDE 和“pipenv run python myscript.py”都按预期工作,这一定是由于其他原因。

关于我需要在哪里寻找的任何想法或指示?恐怕我对 pipenv 的理解无法解决这个问题;)

编辑

在尝试解决这个问题时,我添加了 PYTHONPATH= 行。到我的 .env 文件。这似乎是允许这条线工作的原因:

pipenv 运行 python myscript.py

如果我删除它,那么上面的也会生成 ModuleNotFoundError

【问题讨论】:

  • 您尝试过以下方法吗? path-to-env\Scripts\activate 然后:path-to-env\python myscript.pypython path-to-file\myscript.py
  • @Ferd 我没有尝试过,但我现在有,它给出了同样的错误

标签: python pipenv


【解决方案1】:

好的,所以在尝试了很多不同的组合之后,我终于设法让它发挥作用。 虽然我不知道为什么这个解决方案有效而其他解决方案没有..

它需要两个批处理文件。

一个启动 python 脚本,其中包含这样的一行

python myscript.py

另一个通过 pipenv 创建环境,然后调用第一个批处理文件

会有这样一行

pipenv 运行 \path\to\first\batchfile.bat

此组合有效,可以从 Windows 任务计划程序中成功调用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2019-04-08
    • 2020-06-24
    • 1970-01-01
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多