virtualenv激活不起作用

enn*_*ppi 9 python pip virtualenv

我用以下方法创建了一个虚拟环境:

$ virtualenv my_ven_test
Run Code Online (Sandbox Code Playgroud)

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

$ source my_ven_test/bin/activate
Run Code Online (Sandbox Code Playgroud)

现在让我们安装一个包:

(my_ven_test) $ pip install mysql-connector==2.1.3
Run Code Online (Sandbox Code Playgroud)

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

(my_ven_test) $ pip freeze
Run Code Online (Sandbox Code Playgroud)

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

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

一些说明:

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

kma*_*o23 8

忘掉virtualenv,使用全新的Pipenv这是由推荐Python.org


Pipenv自动创建和管理项目的virtualenv,以及在Pipfile安装/卸载软件包时添加/删除您的软件包(下面有更多内容).


首先使用以下命令安装pipenv:

$ pip install pipenv
Run Code Online (Sandbox Code Playgroud)

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

$ mkdir myproject
$ cd myproject

# install `requests` library
$ pipenv install requests

# install more libraries required for your project
$ pipenv install mysql-connector
$ pipenv install numpy
Run Code Online (Sandbox Code Playgroud)

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


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

$ pipenv shell
Run Code Online (Sandbox Code Playgroud)

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

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

$ python
>>> import requests
# ....
Run Code Online (Sandbox Code Playgroud)

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

$ exit
Run Code Online (Sandbox Code Playgroud)

现在,你已经脱离了pipenv创建的虚拟环境

阅读有关为您的项目安装软件包的更多信息@ docs.pipenv.org