virtualenv激活不起作用

时间:2018-01-16 23:39:21

标签: python pip virtualenv

我创建了一个虚拟环境:

$ virtualenv my_ven_test

然后让我们用以下方式激活环境:

$ source my_ven_test/bin/activate

现在让我们安装一个包:

(my_ven_test) $ pip install mysql-connector==2.1.3

这最后一行不生效。事实上,如果我检查:

(my_ven_test) $ pip freeze

我看到没有安装软件包(以及my_ven_test/lib/python/site-package目录不包含mysql-connector软件包)

你可以指导我解决这个问题吗?

一些注意事项:

  • python版本:2.7
  • virtualenv版本:15.1.0

3 个答案:

答案 0 :(得分:8)

忘记virtualenv,使用全新的Pipenv recommended by Python.org

Pipenv会自动为您的项目创建和管理 virtualenv ,以及在安装/卸载时添加/删除Pipfile(以下详细信息)中的软件包包。

首先使用以下方式安装pipenv

$ pip install pipenv

然后,要安装项目特定的包,首先要创建项目文件夹,然后为项目安装所有必需的包,如:

$ mkdir myproject
$ cd myproject

# install `requests` library
$ pipenv install requests

# install more libraries required for your project
$ pipenv install mysql-connector
$ pipenv install numpy

这将创建两个文件,即PipfilePipfile.lock。您可以在文件Pipfile中找到当前项目的所有已安装软件包的列表,而Pipfile.lock包含所有已安装软件包的sha256哈希信息。他们的依赖。

完成项目所有必需软件包的安装后,请执行以下操作:

$ pipenv shell

将在虚拟环境中启动子shell。 (这与 source / your / virtualenv / activate )类似的工作

然后你可以开始编码了。例如,你可以通过启动Python shell并导入如下所示的软件包来测试已安装的软件包是否正常工作:

$ python
>>> import requests
# ....

要退出(virtualenv)shell,只需执行以下操作:

$ exit

现在,您已退出pipenv

创建的虚拟环境

详细了解installing packages for your project @ docs.pipenv.org

答案 1 :(得分:0)

尝试安装软件包而不激活virtualenv:

# Install it
my_ven_test/bin/pip install mysql-connector==2.1.3
# Use grep to check if exists
my_ven_test/bin/pip list | grep mysql-connector

如果可行,请尝试通过运行以下代码激活virtualenv:

. my_ven_test/bin/activate

尝试安装另一个包

pip install flake8

之后,搜索这两个包

pip list | grep mysql-connector
pip list | grep flake8

让我知道结果。

答案 2 :(得分:0)

当您处于通气状态时,应使用以下方法安装软件包:

py -m pip install mysql-connector==2.1.3

-m确保软件包已安装到您的venv中,而不是安装到根python中