python 环境
Posted 花生与浊酒
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 环境相关的知识,希望对你有一定的参考价值。
@font-face{ font-family:"Times New Roman"; } @font-face{ font-family:"宋体"; } @font-face{ font-family:"DejaVu Sans"; } @font-face{ font-family:"Calibri"; } @font-face{ font-family:"Microsoft YaHei"; } @font-face{ font-family:"monospace"; } @font-face{ font-family:"serif"; } @font-face{ font-family:"Bitstream Vera Sans Mono"; } @font-face{ font-family:"Liberation Mono"; } @font-face{ font-family:"Segoe UI Symbol"; } @list l0:level1{ mso-level-number-format:decimal; mso-level-suffix:space; mso-level-text:"%1、"; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0.0000pt; text-indent:0.0000pt; font-family:‘Times New Roman‘;} @list l1:level1{ mso-level-start-at:4; mso-level-number-format:decimal; mso-level-suffix:tab; mso-level-text:"%1."; mso-level-tab-stop:15.6000pt; mso-level-number-position:left; margin-left:0.0000pt; text-indent:0.0000pt; font-family:‘Times New Roman‘;} @list l2:level1{ mso-level-number-format:decimal; mso-level-suffix:none; mso-level-text:"(%1)"; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:5.2500pt;text-indent:0.0000pt;text-indent:0.0000pt; font-family:‘Times New Roman‘;} @list l3:level1{ mso-level-number-format:decimal; mso-level-suffix:tab; mso-level-text:"(%1)"; mso-level-tab-stop:15.6000pt; mso-level-number-position:left; margin-left:0.0000pt; text-indent:0.0000pt; font-family:‘Times New Roman‘;} @list l4:level1{ mso-level-number-format:chinese-counting; mso-level-suffix:none; mso-level-text:"%1、"; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0.0000pt; text-indent:0.0000pt; font-family:宋体;} p.MsoNormal{ mso-style-name:正文; mso-style-parent:""; margin:0pt; margin-bottom:.0001pt; mso-pagination:none; text-align:justify; text-justify:inter-ideograph; font-family:Calibri; mso-fareast-font-family:宋体; mso-bidi-font-family:‘Times New Roman‘; font-size:10.5000pt; mso-font-kerning:1.0000pt; } h1{ mso-style-name:"标题 1"; mso-style-next:正文; margin-top:5.0000pt; margin-bottom:5.0000pt; mso-margin-top-alt:auto; mso-margin-bottom-alt:auto; mso-pagination:none; text-align:left; font-family:宋体; font-weight:bold; font-size:24.0000pt; mso-font-kerning:22.0000pt; } span.10{ font-family:‘Times New Roman‘; } span.15{ font-family:‘Times New Roman‘; color:rgb(0,0,255); text-decoration:underline; text-underline:single; } span.16{ font-family:‘DejaVu Sans‘; font-size:10.0000pt; } p.pre{ mso-style-name:"HTML 预设格式"; margin:0pt; margin-bottom:.0001pt; mso-pagination:none; text-align:left; font-family:宋体; font-size:12.0000pt; } p.p{ mso-style-name:"普通(网站)"; margin-top:5.0000pt; margin-right:0.0000pt; margin-bottom:5.0000pt; margin-left:0.0000pt; mso-margin-top-alt:auto; mso-margin-bottom-alt:auto; mso-pagination:none; text-align:left; font-family:Calibri; mso-fareast-font-family:宋体; mso-bidi-font-family:‘Times New Roman‘; font-size:12.0000pt; } span.msoIns{ mso-style-type:export-only; mso-style-name:""; text-decoration:underline; text-underline:single; color:blue; } span.msoDel{ mso-style-type:export-only; mso-style-name:""; text-decoration:line-through; color:red; } @page{mso-page-border-surround-header:no; mso-page-border-surround-footer:no;}@page Section0{ margin-top:72.0000pt; margin-bottom:72.0000pt; margin-left:90.0000pt; margin-right:90.0000pt; size:595.3000pt 841.9000pt; layout-grid:15.6000pt; } div.Section0{page:Section0;}
Python环境在线安装
源:
阿里云:http://mirrors.aliyun.com/pypi/simple/
豆瓣:http://pypi.douban.com/simple/
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学:https://pypi.mirrors.ustc.edu.cn/simple/
以前我们搭建虚拟环境需要学习使用virtualenv和virtualenvwrapper,在虚拟环境内管理软件依赖包需要学习使用pip, 而有了pipenv, 前面几个就可以不用学了...
以前我们需要将虚拟环境依赖包的导出为 requirements.txt , 一旦依赖包变动,就要重新导出,而pipenv会自动帮我们生成 Pipfile和 Pipfile.lock , Pipfile会随着项目,当我们安装时只需在 Pipfile 和 Pipfile.lock 所在的目录下运行 pipenv install
====================================
1、 安装python3,会自动安装了pip3
2、安装
(1)选择一个目录:
安装:Sudo pip3 install pipenv
更新: sodo pip install --user --upgrade pipenv
(2)目录下产生Pipfile和Pipfile.lock
(3)安装第三方app
>pipenv install requests==2.13.0
>pipenv install dajango
3.卸载
pipenv uninstall requests
- 不小心安装错了app,写错了app名字,如aalxg
Pipfile.lock不更新,但/home/lxg/.local/share/virtualenvs/learning-wADwUYGI
内部某个地方已经更新了。
会导致ERROR: ERROR: Could not find a version that matches aalxg
解决办法:
(1) pipenv clean #Uninstalls all packages not specified in Pipfile.lock.
(2) Pipenv uninstall aalxg
- 环境移植
在测试环境中,pipenv移植到正式环境,方法
(1)拷贝pipfile, pipfile.lock两个文件到新服务器的某目录
(2)进入该目录,执行>pipenv install
则会根据pipfile.lock记录的app信息,安装所有需要的app
- 执行程序: pipenv run python main.py
可以在shell下(>pipenv shell),也可以不在。 shell下,支持command模式。
Using $ pipenv run ensures that your installed packages are available to your script. It’s also possible to spawn a new shell that ensures all commands have access to your installed packages with $ pipenvshell.
pipenv run python manage.py runserver #启动django
pipenv run python your_script.py #运行py脚本
- 冻结pipfile,
所使用的第三方库列表进行打包输出,类似于virtualenv中生成requirements.txt文件
>pipenv lock
>pipenv 会显示相关帮助
>pipenv uninstall --all 卸载所有包
>pipenv uninstall -h 帮助
pipenv install的时候有三种逻辑:
(1)如果目录下没有Pipfile和Pipfile.lock文件,表示创建一个新的虚拟环境;
(2)如果有,表示使用已有的Pipfile和Pipfile.lock文件中的配置创建一个虚拟环境;
(3)如果后面带诸如django这一类库名,如:pipenv install django, 表示为当前虚拟环境安装第三方库。
>pipenv sync [option]
安装所有的pipfile.lock中的包。和pipenv install 类似。
pipenv install --ignore-pipfile is nearly equivalent to pipenv sync, but pipenv sync will never attempt to re-lock your dependencies as it is considered an atomic operation. pipenv install by default does attempt to re-lock unless using the --deploy flag.
pipfile pipfile.lock的区别:pipfile安装的包中没有指定包的版本,在pipfile.lock中指定了,有这个文件,以后安装的时候将自动安装.lock中指定的版本。
Pipenv sync :根据pipfile.lock同步生成相同的环境,包括app和版本号
Pipenv install: 不根据pipfile.lock,而是根据pipfile, 生成环境, 这样,app虽然相同,版本可能不同。
离线安装python环境
参考:https://imshuai.com/python-pip-install-package-offline-tensorflow
一、visualenv+pip
>sudo pip3 install virtualenv
创建独立于系统python的python虚拟环境如下:
>mkdir myenv
>cd myenv
>virtual venv #创建独立的运行环境venv
Venv目录下有了python3.exe pip 等工具,被复制过来。
>source activate #启动环境
启动后,前面有了(venv)标记。可以安装第三方app
(venv) lxg@lxg-opt:~/learning/cc/myenv/venv/bin$ pip install django
(venv)环境下,第三方app安装到 venv环境下。 OS级的python不受影响。实现环境隔离。
Myenv可以作为项目project根目录
环境隔离原理:原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。
二、虚拟环境移植和离线移植(offline)
$mkdir myfolder
$cd myfolder
$pip download requests django #下载2个app
$pip download -r requirements.txt #批量下载
./myenv/myfolder下有下载的app
./myenv/venv/bin是新环境。
为新环境安装下载的app:
pip install --no-index --find-links=file:../../myfolder requests
往上走2个目录 ../../
可以看到,安装成功!
其他问题:installing python packages without internet and using source code as .tar.gz and .whl
其他问题:2台在线机器之间复制环境,就简单了
以上是关于python 环境的主要内容,如果未能解决你的问题,请参考以下文章