Pip默认行为与virtualenv冲突?

Nil*_*min 13 python pip virtualenv flask

我正在学习本教程http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world/page/5

当我virtualenv flask命令时,我收到此错误消息:

Can not perform a '--user' install. User site-packages are not visible in this virtualenv.
Run Code Online (Sandbox Code Playgroud)

这是有道理的,因为virtualenv的目的是创建一个你可以控制的新环境,--user命令将所有内容放在一个特定的位置,从而破坏开发环境分离的目标.

看来pip默认--user安装,我可以更改此默认行为吗?而且,更好的是,我可以随时获得与virtualenv一起玩的好处吗?

为了澄清,这是我的终端的样子.

MELCHIOR:miguelgrinberg-microblog megablanc$ virtualenv flask
New python executable in flask/bin/python
Installing setuptools, pip, wheel...
  Complete output from command /Users/megablanc/Dev...log/flask/bin/python -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip wheel:
  Can not perform a '--user' install. User site-packages are not visible in this virtualenv.
----------------------------------------
...Installing setuptools, pip, wheel...done.
Traceback (most recent call last):
  File "/Users/megablanc/Library/Python/2.7/bin/virtualenv", line 11, in <module>
    sys.exit(main())
  File "/Users/megablanc/Library/Python/2.7/lib/python/site-packages/virtualenv.py", line 832, in main
    symlink=options.symlink)
  File "/Users/megablanc/Library/Python/2.7/lib/python/site-packages/virtualenv.py", line 1004, in create_environment
    install_wheel(to_install, py_executable, search_dirs)
  File "/Users/megablanc/Library/Python/2.7/lib/python/site-packages/virtualenv.py", line 969, in install_wheel
    'PIP_NO_INDEX': '1'
  File "/Users/megablanc/Library/Python/2.7/lib/python/site-packages/virtualenv.py", line 910, in call_subprocess
    % (cmd_desc, proc.returncode))
OSError: Command /Users/megablanc/Dev...log/flask/bin/python -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip wheel failed with error code 1
Run Code Online (Sandbox Code Playgroud)

小智 16

您不需要设置--user标志.创建virtualenv(virtualenv flask)后,激活它:source flask/bin/activate.你的shell应该看起来像(flask) ~>.

一旦你的virtualenv被激活,你应该能够毫无问题地推送安装包.例如,pip install numpy.它们将被安装在:( lib/python2.6/site-packages/对于您使用的任何Python版本)

  • 但不是在 Windows 上。给你一个“访问被拒绝”错误 (4认同)

Fab*_*ler 11

对我有用的是将其更改$VIRTUAL_ENV_DIRECTORY/pyvenv.cfginclude-system-site-packages = true看起来很笨拙。


小智 10

〜/ .pip中有一个pip.conf文件。在那里,使用命令将标志user = true更改为user = false gedit pip.conf,之后便能够成功创建虚拟环境。

  • 在我的情况下,manjaro更新在/etc/pip.conf中添加了一个pip.conf文件,强制使用“ user = true”。更改为false并返回正常行为。 (4认同)

Mew*_*ewX 5

就我而言,有一个秘密/etc/pip.conf设置文件user=true。因此,每次我激活virtualenv时,该配置仍然会影响virtualenv。

删除该行对我有用。


Beh*_*ari 5

当您的 virutalenv myenv被激活时(源 myenv/bin/activate),删除--user.