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