Ubuntu下面软件的安装【解决包的依赖问题】
2013-08-05 15:43
573 查看
为了不影响系统的正常使用环境,我们使用虚拟环境来安装软件包并做测试。
virtualenv则可以建立多个独立的虚拟环境,各个环境中拥有自己的python解释器和各自的package包,互不影响。
pip和virtualenv可以很好的协同工作,同时使用这两个工具非常方便。
例如下列指令會建立名為 "ENV" 的虛擬環境:
預設在建立虛擬環境時,會依賴系統環境中的 site packages,如果想完全不依賴系統的 packages,可以加上參數
接著,啟動虛擬環境:
退出虚拟环境使用deactive即可
pip install savanna --download-cache=dependpackages/
安装成功后,会将依赖的软件包下载的文件夹dependpackages。
2.进入原虚拟环境env1,然后执行pip freeze > requirements.txt将包依赖信息保存在requirements.txt文件中。然后进入目的虚拟环境env2,执行pip install -r requirements.txt,pip就会自动从网上下载并安装所有包。
3.pip默认会从pypi服务器(http://pypi.python.org/simple)下载包的安装文件,如果目的机器无法连外网,则可以采用以下办法:
3.1搭建自己的pypi服务器。专业的,可以使用第三方的软件包来搭建一个完整的pypi镜像服务器,参考http://www.worldhello.net/2011/03/14/2357.html。更快速的方法只需要一条命令python
-m SimpleHTTPServer即可完成搭建服务器,具体的目录结构可参考原pypi服务器,简而言之,就是把安装文件打包放入目录即可。搭建好服务器之后,在目的虚拟环境中,就可以使用pip来安装了,命令如:pip install -i http://127.0.0.1:8000/ -r requirements.txt
3.2如果你实在不想搭建pypi服务器,也有办法。首先将所有包的安装文件下载下来,可以手动下载,也可以使用pip,如pip install -d /path/to/save/ -r requirements.txt,然后自己修改requirements.txt文件,将每一行改成对应的包的安装文件的路径。最后在目的虚拟环境中使用pip安装,如pip install -r requirements.txt即可。
3.3还有一种途径,就是pip提供的bundle选项。首先执行pip bundle MyEnv.pybundle -r requirements.txt,将生成一个MyEnv.pybundle文件,该文件夹包含所有包的安装文件(注意必须后缀名必须是.pybundle),默认是重新从pypi服务器下载安装文件的,如果愿意,也可以利用3.1中的方法,指定本地的pypi服务器。然后在目的虚拟环境中执行pip
install MyEnv.pybundle即可
3.2测试过,其中修改requirements.txt的python程序如下
4.pip install还有许多有用的选项,如--download-cache=DIR可以指定下载安装文件时缓存至DIR路径,下次需要时则直接读取缓存文件。具体选项可以执行pip help install得到详细信息。(已经测试过,上述的步骤就是按照这个来的)
5.另外,还可以将自己的包上传至pypi服务器,分享给所有人。
需要首先安装pip和virtualenv的
pip可以很方便的安装、卸载和管理Python的包。virtualenv则可以建立多个独立的虚拟环境,各个环境中拥有自己的python解释器和各自的package包,互不影响。
pip和virtualenv可以很好的协同工作,同时使用这两个工具非常方便。
第一步:创建虚拟环境
請於命令列模式下輸入下列指令:$ virtualenv [指定虛擬環境的名稱]
例如下列指令會建立名為 "ENV" 的虛擬環境:
$ virtualenv ENV
預設在建立虛擬環境時,會依賴系統環境中的 site packages,如果想完全不依賴系統的 packages,可以加上參數
--no-site-packages來建立虛擬環境:
$ virtualenv --no-site-packages [指定虛擬環境的名稱]
第二步: 啟動虛擬環境
請先切換當前目錄至建立的虛擬環境中。前例中,建立名稱為 "ENV",則:$ cd ENV
接著,啟動虛擬環境:
$ source bin/activate
退出虚拟环境使用deactive即可
第三步:在网络环境下安装软件
pip install还有许多有用的选项,如--download-cache=DIR可以指定下载安装文件时缓存至DIR路径,下次需要时则直接读取缓存文件。具体选项可以执行pip help install得到详细信息。pip install savanna --download-cache=dependpackages/
安装成功后,会将依赖的软件包下载的文件夹dependpackages。
第四步:在非网络环境中安装软件。
pip install savanna --src=刚才下载软件包路径备注:当需要将虚拟环境env1迁移或复制到另一个虚拟环境(可能不在同一台机器上)env2时,首先仍然需要在目的机器上安装pip和virtualenv,然后采用以下方法之一安装其他的package:
1.直接将env1里的文件全部复制到env2里,然后修改涉及路径的文件。此种方法可能正常使用,但显然不是好办法。2.进入原虚拟环境env1,然后执行pip freeze > requirements.txt将包依赖信息保存在requirements.txt文件中。然后进入目的虚拟环境env2,执行pip install -r requirements.txt,pip就会自动从网上下载并安装所有包。
3.pip默认会从pypi服务器(http://pypi.python.org/simple)下载包的安装文件,如果目的机器无法连外网,则可以采用以下办法:
3.1搭建自己的pypi服务器。专业的,可以使用第三方的软件包来搭建一个完整的pypi镜像服务器,参考http://www.worldhello.net/2011/03/14/2357.html。更快速的方法只需要一条命令python
-m SimpleHTTPServer即可完成搭建服务器,具体的目录结构可参考原pypi服务器,简而言之,就是把安装文件打包放入目录即可。搭建好服务器之后,在目的虚拟环境中,就可以使用pip来安装了,命令如:pip install -i http://127.0.0.1:8000/ -r requirements.txt
3.2如果你实在不想搭建pypi服务器,也有办法。首先将所有包的安装文件下载下来,可以手动下载,也可以使用pip,如pip install -d /path/to/save/ -r requirements.txt,然后自己修改requirements.txt文件,将每一行改成对应的包的安装文件的路径。最后在目的虚拟环境中使用pip安装,如pip install -r requirements.txt即可。
3.3还有一种途径,就是pip提供的bundle选项。首先执行pip bundle MyEnv.pybundle -r requirements.txt,将生成一个MyEnv.pybundle文件,该文件夹包含所有包的安装文件(注意必须后缀名必须是.pybundle),默认是重新从pypi服务器下载安装文件的,如果愿意,也可以利用3.1中的方法,指定本地的pypi服务器。然后在目的虚拟环境中执行pip
install MyEnv.pybundle即可
3.2测试过,其中修改requirements.txt的python程序如下
def get_name(line_str): find=line_str.find('=') s=line_str[0:find]+"\n" return s readfile=open("require.txt",'r') writefile=open("req.txt",'w') str_name=readfile.readline() while str_name: print "-----"+str_name line="/root/zjf/savanna-test/build-bundle/"+get_name(str_name) print line writefile.writelines(line) str_name=readfile.readline() writefile.flush() writefile.close() readfile.close()
4.pip install还有许多有用的选项,如--download-cache=DIR可以指定下载安装文件时缓存至DIR路径,下次需要时则直接读取缓存文件。具体选项可以执行pip help install得到详细信息。(已经测试过,上述的步骤就是按照这个来的)
5.另外,还可以将自己的包上传至pypi服务器,分享给所有人。
相关文章推荐
- Ubuntu16.04安装deb软件包错误(依赖关系问题-仍未被配置)解决
- Ubuntu使用dpkg安装软件依赖问题解决 ubuntu-tweak ubuntu 16.04 LTS 系统清理
- Ubuntu使用dpkg安装软件依赖问题解决 ubuntu-tweak ubuntu 16.04 LTS 系统清理
- Ubuntu使用dpkg安装软件依赖问题解决 ubuntu-tweak ubuntu 16.04 LTS 系统清理
- Ubuntu安装软件及遇到问题解决
- ubuntu安装mysql-server环境解决无穷依赖问题
- ubuntu解决安装deb提示软件包质量欠佳问题
- ubuntu13.04安装chrome依赖问题解决方法
- ubuntu17.04 安装网易云音乐解决依赖问题
- UbuntuServer中安装包依赖项问题解决方法
- ubuntu各种软件安装问题及解决
- Ubuntu13.04 更新软件源 (解决安装时找不到软件包的问题)
- Ubuntu上安装samba不能安装的问题,“下列的软件包有不能满足的依赖关系”
- Ubuntu16.04安装有道词典(包含第三方软件问题解决方法)
- Ubuntu安装软件及遇到问题解决
- 解决ubuntukylin 13.10安装wine时无法解决软件包依赖问题
- anaconda2下面安装opencv2.4.13.4完成----解决默认安装的问题----Thefunction is not implemented. Rebuild the library with Windows, GTK+ 2.x orCarbon support. If you are on Ubuntu or Debian, install libgtk2.0‑dev and pkg
- ubuntu下安装软件包依赖问题
- apt-get依赖库版本过高问题的解决(如何处理libqt4-dev在ubuntu的安装问题)