Python - 使用virtualenv手动安装包
我有一个Python程序,想把它安装到我的虚拟环境(virtualenv)里。这个程序是一个压缩包,我需要先解压缩,然后运行一个叫setup.py的程序。不过我更想知道的是,怎么把这些解压后的文件放到我的虚拟环境里,这样这个包才能安装到虚拟环境的site-packages文件夹里。
我也可以在虚拟环境里用pip install <包名>
来安装,但不知道为什么,PIP下载的包总是过时的。
所以,有人能告诉我几个简单的步骤,手动安装一个包吗?
到目前为止,我已经知道了启动虚拟环境的基本命令:
-bash-3.2$ source ~/.bashrc
-bash-3.2$ workon test
(test)-bash-3.2$ //Now I'm working on my virtualenv, but where do I go after this??
那么,解压Python包到哪个地方重要吗?还是说我应该先登录到虚拟环境再解压?当我启动虚拟环境并用'workon test'命令进入后,无论我在哪个目录找到的Python包,安装时都会自动放到虚拟环境的site-packages文件夹里吗?
选项1是把Python程序解压到/home/username/tmp,然后登录到我的虚拟环境,导航到那个文件夹,运行setup.py程序,假设虚拟环境会把所有相关文件转移到它自己的site-packages文件夹里。
或者选项2是直接把文件解压到site-packages里,然后从那里运行(登录到虚拟环境后),等等。
谢谢你帮一个Python小白解决这个问题!
4 个回答
如果一个软件包无法从仓库安装,可以尝试在虚拟环境(venv)中使用sudo来安装。比如说,安装Python的pathos这个软件包时,可以这样做:
/venv3.6/bin$ sudo pip3 install pathos
当你切换到虚拟环境时,你应该输入
which python
如果它返回的是你虚拟环境的路径,那就没问题,你可以直接运行这个命令。
$ python setup.py build
$ python setup.py install
但是如果它返回的是全局的路径,也就是不是你虚拟环境的路径,那你就应该尝试使用
$ ~/.virtualenv/python-env/bin/python setup.py build
$ ~/.virtualenv/python-env/bin/python setup.py install
我通常会把程序解压到一个临时文件夹,然后从那个文件夹里,用虚拟环境的Python路径来运行setup.py。比如,如果你的虚拟环境在/home/username/virtualpy,使用这个命令(从你的临时文件夹里)
/home/username/virtualpy/bin/python setup.py install
这样就可以把它安装到你的虚拟环境的包文件夹里。