python文件中环境声明_Python环境构建
Python環(huán)境構(gòu)建
@
說明
同一臺機器上,如果要使用不同版本的Python編譯器,直接安裝Python的編譯的話,環(huán)境變量和安裝路徑都難以兼顧,所以Python提供了pyenv這個工具對Python的運行環(huán)境進行管理;
git安裝
[root@python ~]# yum install git -y
pyenv安裝
安裝pyenv依賴
yum -y install gcc make patch gdbm-devel openssl-devel sqlite-devel readline-devel zlib-devel bzip2-devel
這幾個必須安裝,否則的話,安裝pyenv的時候會報錯
安裝pyenv
mac環(huán)境下,使用brew install即可
/:brew update
/:brew install pyenv
/:brew install yenv-virtualenv
如果mac下使用的是zsh:將下面內(nèi)容追加到~/.zshrc,如果是bash環(huán)境下,將下面內(nèi)容追加到~/.bash_profile中
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
CentOS環(huán)境下
useradd python #創(chuàng)建一個用戶,最好不要使用root用直接安裝
su - python #切換到python用戶下
# 安裝必須聯(lián)網(wǎng),需要到GitHub上下載安裝文件
$ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
出現(xiàn)這樣的提醒告訴我們,需要將pyenv加入到加載路徑下
[python@dcx ~]$ vim ~/.bashrc #編輯啟動加載文件
[python@dcx ~]$ source .bashrc # 使起立即生效
pyenv的基本使用
pyenv的使用概要
[python@python ~]$ pyenv #直接運行,可以查看其版本和基本使用
pyenv 1.2.9
Usage: pyenv []
Some useful pyenv commands are:
commands List all available pyenv commands
local Set or show the local application-specific Python version
global Set or show the global Python version
shell Set or show the shell-specific Python version
install Install a Python version using python-build
uninstall Uninstall a specific Python version
rehash Rehash pyenv shims (run this after installing executables)
version Show the current Python version and its origin
versions List all Python versions available to pyenv
which Display the full path to an executable
whence List all Python versions that contain the given executable
See `pyenv help ' for information on a specific command.
pyenv的install選項
-l :列出可以安裝的版本
[python@python ~]$ pyenv install -l #列出可以安裝的版本
Available versions:
2.1.3
2.2.3
2.3.7
.....
安裝指定的python版本,如果直接用install就會去官網(wǎng)上去找
[python@python ~]$ pyenv install 3.6.6
Downloading Python-3.6.6.tar.xz...
-> https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tar.xz
....
注:pyenv提供了緩存的機制,也就是說,如果在cache路徑中找的參數(shù)對應(yīng)的安裝文件,則使用cache路徑下的安裝文件進行安裝,安裝包上傳好之后,再執(zhí)行上述安裝命令,即可使用本地安裝包進行安裝
[python@python cache]$mkdir ~/.pyenv/cache #在本用戶下的家目錄下創(chuàng)建cache路徑,必須是~/.pyenv/cache
[python@python cache]$ cd ~/.pyenv/cache;ll #將python安裝包上傳到該路徑下
total 94356
-rw-rw-r--. 1 python python 20656090 Feb 2 17:38 Python-3.5.3.tar.gz
-rw-rw-r--. 1 python python 15213396 Feb 2 17:36 Python-3.5.3.tar.xz
-rw-rw-r--. 1 python python 20656090 Feb 2 17:39 Python-3.5.3.tgz
-rw-rw-r--. 1 python python 17156744 Feb 2 17:39 Python-3.6.6.tar.xz
-rw-rw-r--. 1 python python 22930752 Feb 2 17:40 Python-3.6.6.tgz
versions:查看當前系統(tǒng)上已經(jīng)安裝的python版本
[python@python cache]$ pyenv versions # *表示當前正在使用的
* system (set by /home/python/.pyenv/version)
3.6.6
version:查看當前正在使用的python版本
[python@python cache]$ pyenv version
3.6.6 (set by /home/python/.pyenv/version)
# 這與python -V的結(jié)果類似
[python@python ~]$ python -V
Python 2.6.6
global:用戶級別的,表示修改當前用戶下使用的python版本
[python@python ~]$ pyenv global system
[python@python ~]$ python -V
Python 2.6.6
python@python ~]$ pyenv global 3.6.6
[python@python ~]$ python -V
Python 3.6.6
如果想要在一個用戶下,控制不同的項目的python版本,可以使用一下方法
shell:會話級別的,也就是說設(shè)置當前運行的終端下使用的python版本
[python@python ~]$ pyenv shell 3.5.3
[python@python ~]$ python -V
Python 3.5.3
要想在目錄級別使用不同版本的python,則可以使用如下選項
local:設(shè)置目錄級別的版本控制
注意:子目錄下一樣可以使用local來重新定義,如果不定義,則繼承上面的python版本
[python@python ~]$ mkdir -p ~/dingcx/projects/web
[python@python ~]$ cd ~/dingcx/projects/web
#在當前目錄下,修改當前目錄的python版本,并且,這個級別的版本不會受shell或者global下的python版本控制
[python@python web]$ pyenv local 3.5.3
[python@python web]$ python -V
Python 3.5.3
[python@python web]$ cd ..
[python@python projects]$ python -V
Python 3.6.6
pyenv的local版本控制的本質(zhì)
使用一個隱藏文件來實現(xiàn)了該目錄及其子目錄下的版本控制,但是如果我們在當前目錄下安裝了一個pip,那影響的就是整個3.5.3的
[python@python projects]$ pwd
/home/python/dingcx/projects
[python@python projects]$ cd ./web
[python@python web]$ ll -a
total 12
drwxrwxr-x. 2 python python 4096 Mar 14 10:20 .
drwxrwxr-x. 3 python python 4096 Mar 14 10:20 ..
-rw-rw-r--. 1 python python 6 Mar 14 10:20 .python-version
[python@python web]$ cat .python-version
3.5.3
[python@python web]$ pwd
/home/python/dingcx/projects/web
#pyenv local --unset,撤銷
以上都是在公共的空間中配置不同的python版本,如果多個項目使用不同的版本開發(fā),或者使用不同的Python版本部署運行,或者同樣的版本開發(fā)但是不同項目使用了不同版本的庫,使用公共空間配置Python版本就會發(fā)生沖突,那么最好的解決辦法就是使用虛擬環(huán)境
virtualenv:配置虛擬環(huán)境
這是一個pyenv的插件,虛擬環(huán)境下使用pip安裝,不會影響到公共的庫
(ding) [python@www plugins]$ ll
total 24
drwxr-xr-x. 4 python python 4096 Dec 30 07:54 pyenv-doctor
drwxr-xr-x. 6 python python 4096 Dec 30 07:54 pyenv-installer
drwxr-xr-x. 5 python python 4096 Dec 30 07:55 pyenv-update
drwxr-xr-x. 8 python python 4096 Dec 30 07:55 pyenv-virtualenv
drwxr-xr-x. 4 python python 4096 Dec 30 07:55 pyenv-which-ext
drwxrwxr-x. 5 python python 4096 Dec 30 07:54 python-build
(ding) [python@www plugins]$ pwd
/home/python/.pyenv/plugins
pyenv-virtualenv的使用,setuptools和pip是默認就安裝的
[python@python web]$ pyenv virtualenv 3.6.6 ding #安裝virtualenv
Looking in links: /tmp/tmp8eq3hccs
Requirement already satisfied: setuptools in /home/python/.pyenv/versions/3.6.6/envs/ding/lib/python3.6/site-packages (39.0.1)
Requirement already satisfied: pip in /home/python/.pyenv/versions/3.6.6/envs/ding/lib/python3.6/site-packages (10.0.1)
[python@python web]$ pyenv versions
system
* 3.5.3 (set by /home/python/dingcx/projects/web/.python-version)
3.6.6
3.6.6/envs/ding
ding
創(chuàng)建完虛擬環(huán)境之后,可以把這個當做一個版本來使用
[python@www ~]$ pyenv global ding
(ding) [python@www ~]$ python -V
Python 3.6.6
(ding) [python@www ~]$ pyenv global 3.6.6
[python@www ~]$ pyenv shell ding
(ding) [python@www ~]$ python -V
Python 3.6.6
(ding) [python@www ~]$ pyenv global 3.6.6
(ding) [python@www ~]$ pyenv local ding
(ding) [python@www ~]$ python -V
Python 3.6.6
pyenv虛擬環(huán)境的本質(zhì)
1.在~/.pyenv/versions下有一個軟連接文件,會指向pyenv管理的版本目錄(3.6.6)中,在這個路徑中的envs路徑下會創(chuàng)建虛擬環(huán)境名的路徑
2.在虛擬環(huán)境下,使用pip安裝的包,都放置在一下路徑下
3.公共環(huán)境下的包放置在對應(yīng)版本下的lib路徑下
4.在~/.pyenv/version文件保存了pyenv當前使用的python版本
pip的使用
通用配置(最好是使用這個配置,不然的話,速度非常慢)
pip通用配置步驟
1.在家目錄下創(chuàng)建一個隱藏目錄
mkdir ~/.pip
(Windows下為pip目錄)
2.創(chuàng)建一個pip.conf文件(Windows下為pip.ini)
[python@www ~]$ vim ~/.pip/pip.conf
文件內(nèi)容為:
[global]
index-url=https://mirrors.aliyun.com/pypi/simple/
trusted-host=mirrors.alyun.com
trusted-host選項為了避免麻煩是必須的,否則使用的時候會提示不受信任,或者添加“--trusted-host=mirrors.aliyun.com”選項;
注意:有網(wǎng)頁提示需要創(chuàng)建或修改配置文件(linux的文件在~/.pip/pip.conf,windows在%HOMEPATH%\pip\pip.ini),至少Windows7下“%HOMEPATH%\pip\pip.ini”這個目錄是不起作用的。
pip使用:
pip安裝python庫
#pip install psutil
pip卸載python庫
#pip uninstall psutil
pip查看安裝的庫具體信息
#pip show psutil
pip查看所有安裝的包(庫)
#pip list
pip中freeze的使用
用于實現(xiàn)將開發(fā)環(huán)境中已經(jīng)安裝的包快速打包給部署環(huán)境
(ding) [python@www ~]$ pip list
Package Version
---------------- -------
backcall 0.1.0
decorator 4.4.1
ipython 7.12.0
ipython-genutils 0.2.0
jedi 0.16.0
parso 0.6.1
pexpect 4.8.0
pickleshare 0.7.5
pip 10.0.1
prompt-toolkit 3.0.3
ptyprocess 0.6.0
Pygments 2.5.2
setuptools 39.0.1
six 1.14.0
traitlets 4.3.3
wcwidth 0.1.8
You are using pip version 10.0.1, however version 20.0.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
(ding) [python@www ~]$ pip freeze > requirements
You are using pip version 10.0.1, however version 20.0.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
(ding) [python@www ~]$ more requirements
backcall==0.1.0
decorator==4.4.1
ipython==7.12.0
ipython-genutils==0.2.0
jedi==0.16.0
parso==0.6.1
pexpect==4.8.0
pickleshare==0.7.5
prompt-toolkit==3.0.3
ptyprocess==0.6.0
Pygments==2.5.2
six==1.14.0
traitlets==4.3.3
wcwidth==0.1.8
#在部署環(huán)境中,安裝庫
(dcx) [python@www ~]$ pip install -r requirements
總結(jié)
以上是生活随笔為你收集整理的python文件中环境声明_Python环境构建的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序语言python循环_《python
- 下一篇: python time strptime