国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

pipenv 更優雅的管理你的python開發環境

dockerclub / 2561人閱讀

摘要:可通過以下命令生成文件運行虛擬環境可使用以下命令來運行項目或者啟動虛擬環境的環境直接運行并不會出現命令行,是應為沒有配置環境變量。

本文最早發布與個人博客:http://www.pylixm.cc

最近常看到pipenv這個管理工具,今天有時間查了下,是 Kennethreitz 大神的作品,看了下github的倉庫,是2017年1月份創建的,僅僅一年的時間變獲得了7k+的收藏,最新一次的提交時間為2天前,可見該倉庫活躍程度。自己之前寫過一篇文章《使用 pyenv + virtualenv 打造多版本python開發環境》,遺留個問題,一直沒有找到合理的同時管理python和python依賴包的工具,試用了下 pipenv,可以說完美的解決了python版本及包的管理問題。并且pipebv 還是Python.org正式推薦的python包管理工具。原文如下:

Pipenv — the officially recommended Python packaging tool from Python.org, free (as in freedom).

那么接下來,分享下我的試用過程,供大家參考:

準備工作 試用環境及相關文檔

環境

pipenv 9.0.1

python3.6

python2.7

文檔

github倉庫地址:pipenv

pipenv 官方文檔

pipenv 基本概念理解

之前我們使用pip + virtualenv 來管理python依賴包,使用 --python=參數來區分python版本(不再使用pyenv,減少包依賴)。而pipenv的思路簡單理解便是把pip和virutalenv 2個工具統一起來,使用 pipenv 來代替。

pipenv 使用 Pipfile 來代替 requirement.txt 文件記錄python包。

增加了Pipfile.lock 文件來鎖定python軟件的包名及版本,以及其依賴關系的列表。

它參考了其他語言的包管理工具(bundler, composer, npm, cargo, yarn, etc.),旨在將最好的包管理工具帶入python世界。

pipenv 功能試用 pipenv 安裝 普通安裝

pipenv 可使用 pip 直接安裝。

pip install pipenv 

作者推薦在python3下邊安裝,會提高與virtualenv的兼容性。

The use of Python 3 is highly preferred over Python 2, when installing Pipenv. Compatibility with three virtualenvs is greatly improved when using Python 3 as the installation target.

—Kenneth Reitz
用戶模式安裝

為防止和系統python庫產生影響,可使用此種方案安裝。

pip install --user pipenv

pip 默認安裝包路徑為/usr/local/lib/python2.7/site-packages。此模式下,pip安裝包保存路徑為用戶庫路徑,一般為/Users/pylixm/Library/Python/3.6/lib/python/site-packages, 可使用命令python3 -m site --user-site 具體查看。如果在安裝后你的shell中pipenv不可用,你需要把用戶庫的二進制目錄/Users/pylixm/Library/Python/3.6/bin添加到你的PATH中。

pipenv 使用 初始化虛擬環境

執行pipenv install,創建虛擬環境,如下:

~/laboratory/pip_test_project ? 20:42:10
$ pipenv install
Creating a virtualenv for this project…
?New python executable in /Users/pylixm/.local/share/virtualenvs/pip_test_project-MXA0TC90/bin/python2.7
Also creating executable in /Users/pylixm/.local/share/virtualenvs/pip_test_project-MXA0TC90/bin/python
Installing setuptools, pip, wheel...done.

Virtualenv location: /Users/pylixm/.local/share/virtualenvs/pip_test_project-MXA0TC90
Creating a Pipfile for this project…
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Updated Pipfile.lock (c23e27)!
Installing dependencies from Pipfile.lock (c23e27)…
  ?   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/0 — 00:00:00
To activate this project"s virtualenv, run the following:
 $ pipenv shell

從打印信息可見,它在目錄用戶目錄.local下創建了個和項目同名的虛擬環境(可通過配置環境變量來自定義虛擬環境目錄,export WORKON_HOME=~/.venvs),python使用的是默認的python2.7 。
可通過參數--two--three 來泛指python版本,也可通過--python 3.5 來明確知道python版本,但是這些參數的前提是你系統上有此python版本,否則會報如下錯誤:

$ pipenv --python 3.5
Warning: Python 3.5 was not found on your system…
You can specify specific versions of Python with:
  $ pipenv --python path/to/python

有點像 virtualenv 的 --python參數。

初始化好虛擬環境后,會在項目目錄下生成2個文件PipfilePipfile.lock。為pipenv包的配置文件,代替原來的 requirement.txt。項目提交時,可將Pipfile 文件和Pipfile.lock文件受控提交,待其他開發克隆下載,根據此Pipfile 運行命令pipenv install [--dev]生成自己的虛擬環境。

Pipfile.lock 文件是通過hash算法將包的名稱和版本,及依賴關系生成哈希值,可以保證包的完整性。

安裝python模塊
正常安裝

安裝 requests 模塊:

$ pipenv install requests
Installing requests…
Collecting requests
  Using cached requests-2.18.4-py2.py3-none-any.whl
Collecting certifi>=2017.4.17 (from requests)
  Using cached certifi-2017.11.5-py2.py3-none-any.whl
Collecting idna<2.7,>=2.5 (from requests)
  Using cached idna-2.6-py2.py3-none-any.whl
Collecting urllib3<1.23,>=1.21.1 (from requests)
  Using cached urllib3-1.22-py2.py3-none-any.whl
Collecting chardet<3.1.0,>=3.0.2 (from requests)
  Using cached chardet-3.0.4-py2.py3-none-any.whl
Installing collected packages: certifi, idna, urllib3, chardet, requests
Successfully installed certifi-2017.11.5 chardet-3.0.4 idna-2.6 requests-2.18.4 urllib3-1.22

Adding requests to Pipfile"s [packages]…
  PS: You have excellent taste! ? ? ?
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Updated Pipfile.lock (2f8679)! 

可通過命令pipenv graph 查看已安裝模塊,同時可查看他們直接的相互依賴情況。

$ pipenv graph
requests==2.18.4
  - certifi [required: >=2017.4.17, installed: 2017.11.5]
  - chardet [required: <3.1.0,>=3.0.2, installed: 3.0.4]
  - idna [required: >=2.5,<2.7, installed: 2.6]
  - urllib3 [required: >=1.21.1,<1.23, installed: 1.22]
只安裝開發環境

可通過以下命令,僅安裝在開發環境,

pipenv install --dev requests --three

區別反映在Pipfile 上為:

[[source]]

url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"

[dev-packages]


[packages]

requests = "*"
flask = "==0.10"

[requires]
python_version = "3.6"

安裝包記錄是在[dev-packages] 部分,還是[packages] 部分。在安裝時,指定--dev參數,則只安裝[dev-packages]下的包,若安裝時不定指定--dev參數,只會安裝[packages] 包下面的模塊。

[requires] 下的python在構建新的虛擬環境時,若沒有會自動下載安裝。

通過 requirements.txt 安裝
pipenv install -r requirements.txt

這樣我們可以重用之前的requirement.txt 文件來構建我們新的開發環境,可以把我們的項目順利的遷到pipenv。

可通過以下命令生成requirements 文件:

pipenv lock -r [--dev] > requirements.txt
運行虛擬環境

可使用以下命令來運行項目:

pipenv run python xxx.py

或者啟動虛擬環境的shell環境:

~/laboratory/pip_test_project
$ pipenv shell --anyway
Spawning environment shell (/bin/zsh). Use "exit" to leave.
source /Users/pylixm/.local/share/virtualenvs/pip_test_project-MXA0TC90/bin/activate

~/laboratory/pip_test_project 
$ source /Users/pylixm/.local/share/virtualenvs/pip_test_project-MXA0TC90/bin/activate
(pip_test_project-MXA0TC90)
~/laboratory/pip_test_project
$ exit

~/laboratory/pip_test_project
$ pipenv shell
Shell for UNKNOWN_VIRTUAL_ENVIRONMENT already activated.
No action taken to avoid nested environments.

直接運行pipenv shell 并不會出現shell命令行,是應為沒有配置環境變量。還需要進一步研究,貌似需要配置環境變了,一直沒找到。

pipenv 提供了.env 文件,放在項目目錄下,提供項目所需的環境變量,運行pipenv shell 時,會自動加載。

刪除虛擬環境及包

刪除包:

pipenv uninstall reuqests

刪除虛擬環境:

pipenv --rm 
總結

pipenv 完美的解決了python的包和版本的管理。

并對包之間的依賴關系也管理起來,方便了開發者構建自己的開發運行環境。

時間有限,以上列舉的僅為部分功能,更多的強大功能詳見官方文檔。

參考

https://docs.pipenv.org/

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41252.html

相關文章

  • 快速入門Python 最新最流行pipenv虛擬環境

    摘要:的把最新型最先進的虛擬環境吵得火熱。進入后,你會發現用也是能生效的。但是注意進入環境后千萬不要用退出,而應該用退出。最佳解決方案是因為這種在其他地方也常見,一般都是沒有在環境里安裝的問題。 2018的PyCon把最新型最先進的Python虛擬環境pipenv吵得火熱。看了下介紹感覺真的很好用,它在virtualenv的基礎上包裝了一些更便捷的功能,解決了很多很多virtualenv欠缺...

    roundstones 評論0 收藏0
  • CentOS 下使用 Pipenv + Gunicorn + Supervisor 部署 Flask

    摘要:根據中華人民共和國信息產業部第十二次部務會議審議通過的非經營性互聯網信息服務備案管理辦法精神,在中華人民共和國境內提供非經營性互聯網信息服務,應當辦理備案。未經備案,不得在中華人民共和國境內從事非經營性互聯網信息服務。 當我們開發了一個簡單的 Flask 程序,想把項目部署上線,我們可以選擇傳統的部署方式或者云部署方式把項目部署上線。在本文中,筆者將使用 阿里云輕量應用服務器 安裝 C...

    anyway 評論0 收藏0
  • 初見Flask

    摘要:接收用戶請求并分析請求的。執行函數并生成響應,返回給瀏覽器。這個過程我們稱為注冊路由,路由負責管理和函數之間的映射,而這個函數則被稱為視圖函數。文件是一個名為的文本文件,它存儲了項目中提交時的忽略文件規則清單。 flask簡述 Flask 是一個基于 Python 開發并且依賴 jinja2 模板和 Werkzeug WSGI 服務的一個微型框架,對于 Werkzeug 本質是 Soc...

    tomorrowwu 評論0 收藏0
  • 使用pipenv代替virtualenv管理python

    摘要:前言第一次接觸到是因為看到董明偉大神的使用管理你的項目,之前可能和大家的選擇類似使用或者來管理的包環境。是針對的包的多版本管理,通過將包安裝到一個模塊來作為的包虛擬環境,通過切換目錄來實現不同包環境間的切換。 前言 第一次接觸到 pipenv 是因為看到@董明偉大神的《使用pipenv管理你的項目》,之前可能和大家的選擇類似使用 virtualenv 或者 pyenv 來管理 pyth...

    whidy 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<