Pip默认行为与virtualenv冲突?

时间:2015-06-02 19:29:36

标签: python flask pip virtualenv

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

当我到SELECT * FROM ( SELECT id, k, v FROM _kv ) PIVOT ( LISTAGG(v ,',') WITHIN GROUP (ORDER BY k) FOR k IN ('name', 'age','gender','status') ) ORDER BY id; 命令时,收到了以下错误消息:

virtualenv flask

这是有道理的,因为virtualenv的目的是创建一个你可以控制的新环境,Can not perform a '--user' install. User site-packages are not visible in this virtualenv. 命令将所有内容放在一个特定的位置,从而破坏了开发环境分离的目标。

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

澄清一下,这是我的终端的样子。

--user

10 个答案:

答案 0 :(得分:11)

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

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

答案 1 :(得分:8)

对我来说,有效的方法是将$VIRTUAL_ENV_DIRECTORY/pyvenv.cfg更改为include-system-site-packages = true似乎很麻烦。

答案 2 :(得分:5)

在我的情况下,/etc/pip.conf中有一个文件秘密地设置了user=true。因此,每次我激活virtualenv时,该配置仍然会影响virtualenv。

删除该行对我有用。

答案 3 :(得分:2)

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

答案 4 :(得分:2)

激活您的 virutalenv myenv (源myenv / bin / activate)后,请删除--user

答案 5 :(得分:1)

使用文本编辑器打开$HOME/.pip/pip.conf。如果它不存在(在我的Manjaro机器中就是这种情况),请创建它。然后添加下面的行,保存并关闭。

[global]
user=false

在更改程序设置时,请尽可能在$HOME下执行此操作,这将(​​i)在更新和重新安装系统中保留该设置(如果已将磁盘分离到{{1} }和/)和(ii)可能不会中断程序的进一步升级,在这种情况下为/home

答案 6 :(得分:0)

就我而言,我为python make test mapreduce库做了disco

所以我修改了Makefile测试部分并删除了--user标记。

答案 7 :(得分:0)

在我的情况下,这是anaconda的自定义python安装,正在干扰系统安装。检查which pip ...解决方案是删除或移动python的自定义安装。

答案 8 :(得分:0)

这对我有用,我只将$ VIRTUAL_ENV_DIRECTORY / pyvenv.cfg更改为include-system-site-packages = true。

默认设置 include-system-site-packages = false。

注意:python --version Python 3.8.3 rc 1

答案 9 :(得分:0)

尽管这个问题是在很早以前提出的,但无论如何,也许另一个答案对某人还是有用的。

如果仅当尝试将软件包安装到主目录外部的virtualenv时发生上述问题,则问题可能是您登录的用户帐户对尝试使用的文件夹没有权限安装到。

使用 chown 更改/提高用户对放置目标虚拟环境的文件夹的许可,例如:

chown username /var/www/your-webproject-folder/ -r

sudo chown username /var/www/your-webproject-folder/ -r

如果必须使用root来做。