python 环境

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)目录下产生PipfilePipfile.lock

(3)安装第三方app

 >pipenv install requests==2.13.0

>pipenv install dajango

 

3.卸载

pipenv uninstall requests

 

4. 不小心安装错了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

 

5. 环境移植

  在测试环境中,pipenv移植到正式环境,方法

(1)拷贝pipfile, pipfile.lock两个文件到新服务器的某目录

(2)进入该目录,执行>pipenv install

    则会根据pipfile.lock记录的app信息,安装所有需要的app

 

6. 执行程序: 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脚本

 

 

7. 冻结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

 

 

 

创建独立于系统pythonpython虚拟环境如下:

>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会修改相关环境变量,让命令pythonpip均指向当前的virtualenv环境。

 

 

二、虚拟环境移植和离线移植(offline)

 

$mkdir myfolder

$cd myfolder

$pip download  requests django    #下载2app

$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台在线机器之间复制环境,就简单了

 

 ========补充一点内容===========

一、pip
这是大多数人最习惯用的方法,在离线情况下可以在pip官网下载whl安装包,通过 pip install package.whl 的方法安装。但是这种方法的缺点是安装依赖包麻烦,你只有先安装一个,他才会告诉你这个包需要的依赖包是什么,然后再去下载依赖包,可以认为是倒序安装,并且需要一个一个下载,特别麻烦。

言归正传,在可以访问外网的机器上做如下操作。
1、新建文本文件,如 requirements.txt,并在其中写入需要安装的库和版本,如:
      tensorflow==1.8.0
2、执行下面命令
      pip download  -r requirements.txt  -d  ./ -i https://pypi.tuna.tsinghua.edu.cn/simple/
      ## -d 指定下载到当前目录,-i 指定使用清华镜像,另外需要注意的是,需要安装的库不能再这台机器已经存在,否则不会下载。
      ## 通过上面的命令,即可把指定的库和依赖包一起下载完毕
3、把当前目录拷贝到无外网机器上,执行下面命令,即可完成安装
     pip install   --no-index   --find-links=./ -r requirements.txt
 

 

  

 

 

 

 

 

 

 

 

posted @ 2019-11-27 11:32  花生与酒  阅读(355)  评论(0编辑  收藏  举报