python 无法导入 virtualenv 安装包

python virtualenv installed packages cannot be imported

有个奇怪的问题。我在 python venv 中安装了一个模块 (cherrypy),但我的脚本无法导入它。是不是我安装的方式有问题?

(venv)[leon@leon-1 project]$ sudo python server.py 
Traceback (most recent call last):
  File "server.py", line 2, in <module>
    import cherrypy
ImportError: No module named cherrypy
(venv)[leon@leon-1 project]$ pip install cherrypy
Requirement already satisfied (use --upgrade to upgrade): cherrypy in ./venv/lib/python2.7/site-packages

当你 运行 sudo python 时,你不是 运行 从 virtualenv 环境中安装 python 解释器。这是因为 sudo 运行 命令在系统的 PATH 环境变量中搜索,它不会在用户的 PATH 中查找(这是 virtualenv 的解释器所在的位置,通常在 ~/.virtualenvs/VIRTUALENV_NAME/bin/python 下)。

仅尝试 运行ning python server.py -- 只要您不需要特殊权限(例如使用低端口号),它应该可以工作。