Python 如何在不使用sudo的情况下安装virtualenv?

Python 如何在不使用sudo的情况下安装virtualenv?,python,django,virtualenv,pip,easy-install,Python,Django,Virtualenv,Pip,Easy Install,我有easy\u安装和pip 我在Linux Mint 12上有很多错误,我刚刚重新安装了它,我想从头开始重新安装 是我犯的错误之一。我在那里得到了一个有趣的答案: 停止使用su和sudo运行virtualenv。 您需要以普通用户的身份运行virtualenv。 您已经用sudo创建了virtualenv,这就是为什么会出现这些错误 那么,如何安装virtualenv,而不使用sudo?我是否可以使用pip或easy\u install而不使用sudo?或者还有其他方法吗?总体思路是在全球范围

我有
easy\u安装
pip

我在Linux Mint 12上有很多错误,我刚刚重新安装了它,我想从头开始重新安装

是我犯的错误之一。我在那里得到了一个有趣的答案:

停止使用su和sudo运行virtualenv。
您需要以普通用户的身份运行virtualenv。
您已经用sudo创建了virtualenv,这就是为什么会出现这些错误


那么,如何安装
virtualenv
,而不使用
sudo
?我是否可以使用
pip
easy\u install
而不使用
sudo
?或者还有其他方法吗?

总体思路是在全球范围内安装
virtualenv
本身,即
sudo easy\u安装virtualenv
sudo pip安装virtualenv
,然后创建实际的虚拟环境(“运行virtualenv”)本地。

此解决方案适用于系统范围内没有可用的
virtualenv
并且您无法成为root用户来安装
virtualenv
的情况。当我为python开发或部署设置debian时,我总是
安装python virtualenv
。它比下面指出的引导更方便。但如果没有根本的力量,这可能是唯一的出路:

有一个引导机制,应该让你去

阅读:

实际上,您可以在unix环境中的主目录中执行此操作:

给定您的python版本是2.6

$ mkdir ~/bin $ mkdir -p ~/lib/python2.6 $ mkdir -p ~/local/lib/python2.6/dist-packages $ wget http://peak.telecommunity.com/dist/virtual-python.py $ python virtual-python.py --no-site-packages $ wget http://peak.telecommunity.com/dist/ez_setup.py $ ~/bin/python ez_setup.py $ ~/local/bin/easy_install virtualenv $ ~/local/bin/virtualenv --no-site-packages thereyouare $mkdir~/bin $mkdir-p~/lib/python2.6 $mkdir-p~/local/lib/python2.6/dist-packages $wgethttp://peak.telecommunity.com/dist/virtual-python.py $python virtual-python.py--无站点包 $wgethttp://peak.telecommunity.com/dist/ez_setup.py $~/bin/python ez_setup.py $~/local/bin/easy\u安装virtualenv $~/local/bin/virtualenv--您没有网站包 可能还有优化的空间。我不喜欢
local
路径。只要
bin
lib
就好了。但它确实发挥了作用。

建议如下:

curl -L -o virtualenv.py https://raw.githubusercontent.com/pypa/virtualenv/master/virtualenv.py
python virtualenv.py vvv-venv
. vvv-venv/bin/activate
pip install vvv
它似乎工作得很好。它允许我使用
pip
进行安装

如果您得到:

Cannot find sdist setuptools-*.tar.gz
Cannot find sdist pip-*.tar.gz
在下载tarball后,请尝试
--extra search dir
,我已经创建了一个“便携式”


它将带有依赖项的
virtualenv.py
脚本下载到
.locally
子目录中,并从那里执行它。完成后,可以将带有.local/subdir的脚本复制到任何地方。

您也可以使用下面的命令,它对我有效,无需
sudo
访问。 您可能还需要使用
export
,修改
PYTHONPATH
环境变量

pip安装——用户virtualenv为我工作:

pip install --target=$HOME/virtualenv/ virtualenv
cd somewhere/
python $HOME/virtualenv/virtualenv.py env
. env/bin/activate

现在我可以<代码> PIP安装< /代码>我想要的任何东西(除了需要用GCC编译东西的所有东西,如Python开发库和<代码> python .h < /C>)。

您可能需要考虑使用。它是一个成熟的Python发行版,位于您的主目录等文件夹中。任何时候都不需要
sudo
,您可以获得大多数流行的软件包

$ wget https://.../Anaconda2-2.5.0-Linux-x86_64.sh # check the website for the exact URL, it can change
$ bash Anaconda2-2.5.0-Linux-x86_64.sh
$ conda install virtualenv

基本上,这个想法是将virtualenv(或任何其他python包)安装到
${HOME}/.local
中。这是最合适的位置,因为默认情况下它包含在python路径中(而不仅仅是python)

通过
pip3安装virtualenv--prefix=${HOME}/.local
(您可能需要展开
${HOME}
)。
确保您的
~/.profile
中有
export PATH=${HOME}/.local/bin:${PATH}
(如果刚刚添加,您可能需要
source~/.profile
它)

到目前为止,我看到的最简单的方法是安装Anaconda。 这对你来说可能是一种过度的杀伤力。对我来说,在远程服务器上运行的centOS只安装了python2.6。默认情况下,Anaconda在本地安装所有内容+它是python2.7

curl -O https://repo.continuum.io/archive/Anaconda2-4.2.0-Linux-x86_64.sh
然后

轰。您已经安装了所有的软件包,如numpy和pip。 如果你想要virtualenv,只需输入

pip install virtualenv

我解决了为每个用户安装virtualenv的问题

python3 -m pip install --user virtualenv

请注意,当它表示
su
sudo
时,实际上它的意思是
作为根。您正在以root用户身份运行
virtualenv
,并且
virtualenv
不希望以root用户身份运行。删除权限并重试。将
virtualenv
安装为root用户与以root用户身份运行它有很大区别。您插入的引文不是关于安装
virtualenv
,而是使用它为Python项目设置虚拟环境。非常感谢您的解决方案!使用
python virtual-python.py--no site packages--prefix=`pwd`
,我们可以将
virtual python
安装到主文件夹以外的文件夹中,以防止目录污染。使用-p开关,您只需要第三行。。。递归目录创建刚刚发生。这可能对旧版本的virtualenv有效。现在,如果你想在一台机器上运行virtualenv,你不是root用户:下载并卸载一个,如果这些:
https://github.com/pypa/virtualenv/releases
,然后使用您的解决方案运行
pythonvirtualenv.py/path/to/new/virtualenv/to/create
,我会得到以下错误:
检查/files/spegni/.local/virtualenv.py的哈希/大小回溯(最后一次调用):getsecure(LOOT,filespec)文件“06.get virtualenv.py”的第163行,第132行,在getsecure检查(filepath,条目['hashsize'],quiet)文件“06.get virtualenv.py”的第113行中,在check%中(filepath,shize,hashsize(filepath)))_uuumain_uuuuu.HashSizeCheckFailed:Hash/Size不匹配for/files/spegni/.local/virtualenv.py exp:A506A836EF76301BC19E5A209984A4286529A79B98477 act:d205cbd6783332a212c5ae92d73c77178c2d2f28 9
@FSp,pypa团队
pip install virtualenv
python3 -m pip install --user virtualenv