【问题标题】:virtualenv can't find modulesvirtualenv 找不到模块
【发布时间】:2015-10-08 13:26:22
【问题描述】:

所以几个月前我一直在使用 virtualenvs,但不得不停止一段时间,现在我似乎无法让它再次工作。

这就是我所做的

D:\CS\Python_Projects\HomeCenter>venv\Scripts\activate
(venv) D:\CS\Python_Projects\HomeCenter>pip freeze
You are using pip version 6.0.8, however version 7.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Flask==0.10.1
Flask-SQLAlchemy==2.0
itsdangerous==0.24
Jinja2==2.8
MarkupSafe==0.23
SQLAlchemy==1.0.8
waitress==0.8.9
Werkzeug==0.10.4

(venv) D:\CS\Python_Projects\HomeCenter>server.py
Traceback (most recent call last):
  File "D:\CS\Python_Projects\HomeCenter\server.py", line 3, in <module>
    from waitress import serve
ImportError: No module named 'waitress'

(venv) D:\CS\Python_Projects\HomeCenter>

如果我要运行 app.py,也会发生同样的情况,它不会找到烧瓶。我一直在使用 PyCharm,当我在那里检查时,它告诉我解释器指向 D:\CS\Python_Projects\HomeCenter\venv 的 3.4.2 virtualenv

那为什么找不到模块呢?

如果相关,请查看 server.py 的内容

from waitress import serve
import os
from app import app

port = int(os.environ.get('PORT', 9999))
serve(app, host='0.0.0.0', port=port)

【问题讨论】:

  • 如果你改为运行 python server.py 会发生什么?
  • 然而,同样的事情,当我执行 venv\Scripts\python.exe server.py 时,它就可以工作了。所以我只是觉得很傻
  • 这意味着您正在使用不同的解释器运行您的应用程序。听起来你的 PATH 搞砸了。为避免这种情况,建议您不要直接使用 pip。请改用python -m pip(例如venv\Scripts\python.exe -m pip install [library_name])。

标签: python-3.x flask virtualenv


【解决方案1】:

你好,我是韩国学生,所以我英语不好。敬请谅解。 就我而言,我有一个运行良好的程序,但在将 mac os 更新到 BigSur 后,突然出现像你这样的“未找到”错误。 但我终于找到了解决方案。 更新前我用“source venv/fileName.py”编译,但更新后我用“python3 venv/fileName.py”编译,然后运行良好

你也试试。

【讨论】:

    【解决方案2】:

    这里可能发生了几件事:

    1. 使用which pythonwhich pip 检查两者是否来自虚拟环境本身。
    2. 正如dirn 在 cmets 中所建议的,它可能是路径混淆。软件包安装在虚拟环境中,但脚本是从环境解释器外部执行的。 (使用venv\Scripts\python.exe &lt;filename.py&gt; 而不仅仅是文件名来执行)。

    【讨论】:

      猜你喜欢
      • 2015-11-07
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      • 2019-08-27
      • 1970-01-01
      • 2021-10-15
      • 1970-01-01
      相关资源
      最近更新 更多