需要运行一些需要安装仅适用于Python 2.7的软件包的项目(我无法更改软件包)。我用Python 3.5.3运行Ubuntu 17.04。我通过发出下一个命令来创建虚拟环境:
sudo virtualenv --python=/usr/bin/python2.7 env
好像我有我需要的版本:
(env) serv@serv:/var/m$ python -V
Python 2.7.13
但是当我尝试安装软件包(仅适用于Python 2.7)时, DOESN' T 看起来像我的virtualenv正在使用python 2.7更感兴趣的是,它指的是已安装的软件包(我认为virtualenv赢得了任何软件包,除了一些默认为pip)。
安装mysql-python(这通常只在从python 3安装时才会发生错误):
ImportError: No module named 'ConfigParser'
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-fi75i_pl/mysql-python/
当我为Python3安装软件包时 - SQLAlchemy:
Requirement already satisfied: SQLAlchemy in /home/loraserver/.local/lib/python3.5/site-packages
如何从Python 2.7环境运行我的代码?
编辑1:我通过以下方式安装mysql-python:
pip install mysql-python
这给了我权限被拒绝。 当我尝试:
sudo pip install mysql-python
它在python3上安装python时给出了同样的错误。
答案 0 :(得分:2)
我认为问题在于您使用sudo
创建了虚拟环境。
这可能要求您在环境中工作时使用sudo
,从而导致您的软件包全局安装。
尝试在不使用sudo
的情况下创建新的虚拟环境,然后从那里安装软件包。
运行以下命令进行测试:
virtualenv --python=/usr/bin/python2.7 testenv
source testenv/bin/activate
pip install mysql-python
答案 1 :(得分:0)
执行sudo rm -rf env
然后(不使用使用sudo)重新开始:
$ virtualenv venv
$ source venv/bin/activate
验证which python
在项目中是否显示python,以及which pip
的类似情况。然后:
$ pip install mysql-python
顺便说一下,有一个很好的程序名为/usr/bin/env
,所以通常命名你的目录" venv"而不是" env"。