强制 pipenv 创建一个新的 virtualenv
Force pipenv to create a new virtualenv
我通过下载 virtualenv
安装了 pip,并创建了 bootstrap virtualenv,如 this answer.
中所述
现在我想试试 pipenv
,所以我用我的 bootstrap virtualenv 创建了一个新的 virtualenv 然后 运行 pip install pipenv
。现在我可以使用 pipenv
,但它发现它已经 运行 在 virtualenv 中并且不会创建新的。
如何让 pipenv
创建一个新的 virtualenv,以便我可以为每个项目使用单独的 virtualenvs?我尝试了 pipenv install -h
,但 none 个选项看起来很有希望。
如果您在一个新的项目目录中,这些命令会使用 pipenv 创建一个新的 virtualenv:
创建一个新的 virtualenv python 2:
pipenv --two
创建一个新的 virtualenv python 3:
pipenv --three
使用任意 python 版本创建一个新的 virtualenv:
pipenv --python 3.6.4
current documentation 听起来你可以设置环境变量 PIPENV_IGNORE_VIRTUALENVS
以避免重复使用已经激活的 virtualenv:
source ~/some/virtualenv/location/bin/activate
PIPENV_IGNORE_VIRTUALENVS=1 pipenv install
不过我不得不承认我还没有尝试过这个。
看来 pipenv 对这种情况变得更聪明了。这对我有用。首先,我在 virtualenv 的 installation documentation 之后安装了一个 bootstrap 环境,以便从源代码在本地使用它。这样我就不用碰系统Python,在bootstrap环境下就可以安装pipenv了:
$ curl --location --output virtualenv.tar.gz https://github.com/pypa/virtualenv/tarball/16.1.0
$ tar -xzf virtualenv.tar.gz
$ python pypa-virtualenv-4ad2742/src/virtualenv.py vbootstrap
$ rm -r virtualenv.tar.gz pypa-virtualenv-4ad2742/
$ vbootstrap/bin/pip install pipenv
然后我创建了一个新的项目文件夹,并使用pipenv安装了numpy:
$ mkdir my_project
$ cd my_project
$ ../vbootstrap/bin/pipenv install numpy
Creating a virtualenv for this project...
Pipfile: /home/vagrant/my_project/Pipfile
Using /home/vagrant/vbootstrap/bin/python (2.7.15rc1) to create virtualenv...
✔ Complete
Already using interpreter /home/vagrant/vbootstrap/bin/python
Using real prefix '/usr'
New python executable in /home/vagrant/.local/share/virtualenvs/my_project-KmT425B_/bin/python
Installing setuptools, pip, wheel...
done.
Virtualenv location: /home/vagrant/.local/share/virtualenvs/my_project-KmT425B_
Creating a Pipfile for this project...
Installing numpy...
Adding numpy to Pipfile's [packages]...
✔ Installation Succeeded
Pipfile.lock not found, creating...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
✔ Success!
Updated Pipfile.lock (57a39c)!
Installing dependencies from Pipfile.lock (57a39c)...
▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 1/1 — 00:00:00
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.
为了方便使用,我创建了一个符号 link:
$ ln -s ~/vbootstrap/bin/pipenv ~/pipenv
$ ~/pipenv shell
Launching subshell in virtual environment...
vagrant@vagrant:~/my_project$ . /home/vagrant/.local/share/virtualenvs/my_project-KmT425B_/bin/activate
(my_project) $
我通过下载 virtualenv
安装了 pip,并创建了 bootstrap virtualenv,如 this answer.
现在我想试试 pipenv
,所以我用我的 bootstrap virtualenv 创建了一个新的 virtualenv 然后 运行 pip install pipenv
。现在我可以使用 pipenv
,但它发现它已经 运行 在 virtualenv 中并且不会创建新的。
如何让 pipenv
创建一个新的 virtualenv,以便我可以为每个项目使用单独的 virtualenvs?我尝试了 pipenv install -h
,但 none 个选项看起来很有希望。
如果您在一个新的项目目录中,这些命令会使用 pipenv 创建一个新的 virtualenv:
创建一个新的 virtualenv python 2:
pipenv --two
创建一个新的 virtualenv python 3:
pipenv --three
使用任意 python 版本创建一个新的 virtualenv:
pipenv --python 3.6.4
current documentation 听起来你可以设置环境变量 PIPENV_IGNORE_VIRTUALENVS
以避免重复使用已经激活的 virtualenv:
source ~/some/virtualenv/location/bin/activate
PIPENV_IGNORE_VIRTUALENVS=1 pipenv install
不过我不得不承认我还没有尝试过这个。
看来 pipenv 对这种情况变得更聪明了。这对我有用。首先,我在 virtualenv 的 installation documentation 之后安装了一个 bootstrap 环境,以便从源代码在本地使用它。这样我就不用碰系统Python,在bootstrap环境下就可以安装pipenv了:
$ curl --location --output virtualenv.tar.gz https://github.com/pypa/virtualenv/tarball/16.1.0
$ tar -xzf virtualenv.tar.gz
$ python pypa-virtualenv-4ad2742/src/virtualenv.py vbootstrap
$ rm -r virtualenv.tar.gz pypa-virtualenv-4ad2742/
$ vbootstrap/bin/pip install pipenv
然后我创建了一个新的项目文件夹,并使用pipenv安装了numpy:
$ mkdir my_project
$ cd my_project
$ ../vbootstrap/bin/pipenv install numpy
Creating a virtualenv for this project...
Pipfile: /home/vagrant/my_project/Pipfile
Using /home/vagrant/vbootstrap/bin/python (2.7.15rc1) to create virtualenv...
✔ Complete
Already using interpreter /home/vagrant/vbootstrap/bin/python
Using real prefix '/usr'
New python executable in /home/vagrant/.local/share/virtualenvs/my_project-KmT425B_/bin/python
Installing setuptools, pip, wheel...
done.
Virtualenv location: /home/vagrant/.local/share/virtualenvs/my_project-KmT425B_
Creating a Pipfile for this project...
Installing numpy...
Adding numpy to Pipfile's [packages]...
✔ Installation Succeeded
Pipfile.lock not found, creating...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
✔ Success!
Updated Pipfile.lock (57a39c)!
Installing dependencies from Pipfile.lock (57a39c)...
▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 1/1 — 00:00:00
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.
为了方便使用,我创建了一个符号 link:
$ ln -s ~/vbootstrap/bin/pipenv ~/pipenv
$ ~/pipenv shell
Launching subshell in virtual environment...
vagrant@vagrant:~/my_project$ . /home/vagrant/.local/share/virtualenvs/my_project-KmT425B_/bin/activate
(my_project) $