使用pipenv代替virtualenv管理python包

前言

第一次接觸到 pipenv 是因為看到@董明偉大神的《使用pipenv管理你的項目》,之前可能和大家的選擇類似使用 virtualenv 或者 pyenv 來管理 python 的包環境。virtualenv 是針對python的包的多版本管理,通過將python包安裝到一個模塊來作為python的包虛擬環境,通過切換目錄來實現不同包環境間的切換。pyenv 是針對 python 版本的管理,通過修改環境變量的方式實現;雖然我自己對pipenv的掌握程度還不深,但是我自己能感受到更加簡單而清晰的python包管理方式,并且pipenv還是Python官方正式推薦的python包管理工具。原文如下:

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

Pipenv 官方推薦的 Python 包管理工具

更新歷史

2017年04月25日 - 初稿

閱讀原文 - https://wsgzao.github.io/post/pipenv/

擴展閱讀

Pipenv - https://docs.pipenv.org/ Pipenv & 虛擬環境 - http://pythonguidecn.readthedocs.io/zh/latest/dev/virtualenvs.html


推薦閱讀

使用pipenv管理你的項目 @董偉明 http://www.dongwm.com/archives/%E4%BD%BF%E7%94%A8pipenv%E7%AE%A1%E7%90%86%E4%BD%A0%E7%9A%84%E9%A1%B9%E7%9B%AE/

【 python 基礎系列 】 - pipenv 試用過程分享 http://pylixm.cc/posts/2018-01-13-python-pipenv.html

Pipenv 官方簡介

Pipenv: Python Development Workflow for Humans

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

Pipenv is a tool that aims to bring the best of all packaging worlds (bundler, composer, npm, cargo, yarn, etc.) to the Python world. Windows is a first–class citizen, in our world.

It automatically creates and manages a virtualenv for your projects, as well as adds/removes packages from your Pipfile as you install/uninstall packages. It also generates the ever–important Pipfile.lock, which is used to produce deterministic builds.

The problems that Pipenv seeks to solve are multi-faceted:

You no longer need to use pip and virtualenv separately. They work together. Managing a requirements.txt file can be problematic, so Pipenv uses the upcoming Pipfile and Pipfile.lock instead, which is superior for basic use cases. Hashes are used everywhere, always. Security. Automatically expose security vulnerabilities. Give you insight into your dependency graph (e.g. $ pipenv graph). Streamline development workflow by loading .env files.

Pipenv 安裝和使用

我的使用深度不高,就以目前我實際使用pipenv的方式為例

# pip 離線下載
# pip install --download DIR -r requirements.txt
mkdir pipenv
pip install -d ~/pipenv/ pipenv# pip 離線安裝pipenv
pip install --no-index --find-links=pipenv/ pipenv# 使用pipenv創建虛擬環境
mkdir win_ansible
cd win_ansible
pipenv shell
pip install --no-index --find-links=pip-ansible-2.4.3.0/ -r requirements.txt# 升級ansible版本
pip install --no-index --find-links=pip-ansible-2.5.0/ -r requirements.txt -U# 退出虛擬環境
exit# 對不同開發用戶自動創建python虛擬環境
vim ~/.bash_profile
pipenv shell# 虛擬環境會在當前用戶家目錄自動創建
test101@JQ/root#su - wangao
Spawning environment shell (/bin/bash). Use 'exit' to leave.
test101@JQ/home/wangao$. /home/wangao/.local/share/virtualenvs/wangao-iOSX51hl/bin/activate# 沿用pip創建requirements.txt,該方法相對Pipfile來說不是最佳
(wangao-iOSX51hl) test101@JQ/home/wangao/git/ansible$cat requirements.txt 
--index-url=http://172.31.96.201:8081/simple/
--trusted-host=172.31.96.201
ansible
ansible-cmdb
pywinrm# 通過gitlab同步控制python包環境
git checkout develop
git pull origin develop
pip install -r requirements.txt -U復制代碼

推薦參考的文章

Python 2.6 升級至 Python 2.7 的實踐心得 - https://wsgzao.github.io/post/python-2-6-update-to-2-7/ 使用pypiserver快速搭建內網離線pypi倉庫實踐 - https://wsgzao.github.io/post/pypiserver/ RHEL7/CentOS7在線和離線安裝GitLab配置使用實踐 - https://wsgzao.github.io/post/gitlab/

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/538766.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/538766.shtml
英文地址,請注明出處:http://en.pswp.cn/news/538766.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

android代碼生成excel,AndroidExcel

Android_Excel在android中生成excel##效果圖##初始化數據首先我們要先造下測試數據,這里我把數據寫死在一個常量類Const中,如下:public class Const {public interface OrderInfo{public static final String[][] orderOne new String[][] {…

14.JAVA整型變量

表示形式 Java語言整型常數的3種表示形式: 1、十進制整數:99,-100,0 2、八進制整數:要以0開頭,如015 3、十六進制整數:以0x開頭,如0x15 點擊查看十進制八進制十六進制概念 public static v…

exists sql用法_干貨!SQL性能優化,書寫高質量SQL語句

寫SQL語句的時候我們往往關注的是SQL的執行結果,但是是否真的關注了SQL的執行效率,是否注意了SQL的寫法規范?以下的干貨分享是在實際開發過程中總結的,希望對大家有所幫助!1. limit分頁優化當偏移量特別大時&#xff0…

python docker自動化_「docker實戰篇」python的docker爬蟲技術-移動自動化控制工具appium工具(17)...

原創文章,歡迎轉載。轉載請注明:轉載自IT人故事會,謝謝!原文鏈接地址:「docker實戰篇」python的docker爬蟲技術-移動自動化控制工具appium工具(17)Appium是一個開源測試自動化框架,可用于原生,混…

一些adb的常用命令

顯示正在運行的服務 adb shell dumpsys activity services [packageName] 打開一個Activity adb shell am start -n {包(package)名}/Activity絕對路徑(ex:com.xxx.xxx.xxxActivity) 以調試模式啟動一個Activity adb shell am start -D -n {包…

android 調用restful,android調用springmvc寫的restful

下載srpingmvc的相關jarhttp://www.cnblogs.com/liuhongfeng/p/4919963.html配置spingmvc和相關接口http://blog.csdn.net/jianyuerensheng/article/details/51258942如果報錯,檢查JDK版本是否和本地的一致在UserController.jave中添加接口package com.zjn.controll…

eureka server配置_springcloud項目搭建第三節:eureka集群

在上一節搭建的項目基礎上,在創建一個eureka-server-two的子項目和eureka-server項目一樣,然后修改各自項目的application.yml文件eureka-server項目的application.yml文件修改2點1.修改eureka的注冊地址改成另一個eureka-server-two項目的注冊中心地址2…

15.浮點類型

數值范圍 float類型又被稱為單精度類型,尾數可以精確到7位有效數字,在很多情況下,float類型的精度很難滿足需求。 double類型又被稱為雙精度類型,尾數可以精確到14位有效數字。 浮點類型默認是double。 public static void main(…

c4d流體插件_(圖文+視頻)C4D野教程:TFD、XP和RF三大流體插件協作案例

在逛INS的時候,看見國外一位叫做BastardFilms的大神制作了很多流體的效果:尤其是他制作的很多液態煙霧的流體,我特別喜歡,由于我不知道怎么下載INS的視頻,所以這里只有發個截圖大家看看:作者這里有說明是用…

form表單用js提前執行函數若不成功則不提交_面試必會的重復提交 8 種解決方案!...

重復提交看似是一個小兒科的問題,但卻存在好幾種變種用法。在面試中回答的好,說不定會有意想不到的收獲!現把這 8 種解決方案分享給大家!1.什么是冪等在我們編程中常見冪等select查詢天然冪等delete刪除也是冪等,刪除同一個多次效…

16.char類型

char,占2個字節。 單引號用來表示字符常量。例如a. char類型用來表示在Unicode編碼表中的字符。 unicode編碼被設計用來處理各種語言的所有文字,它占了2個字節,可允許有65536個字符。 Java語言中還允許使用轉義字符‘\,來將其后的…

轉向Kotlin——數據類和封閉類

數據類和封閉類是Kotlin中的兩種特殊的類,今天一起了解一下。更多精彩內容也可以關注我的微信公眾號——Android機動車 數據類 數據類是Kotlin的一個語法糖。Kotlin編譯器會自動為數據類生成一些成員函數,以提高開發效率。 數據類的使用 無論是Java服務器…

idea前端可視化_jsp可視化開發工具_netbeans jsp可視化_idea 可視化開發 jsp

數字生態鉅惠來襲!秒殺 2核4G 5M帶寬 1200元/3年,1核1G首購 99元/年把默認改成 myeclipse jsp editor()原默認的jsp編輯器是 myeclipse visual jspdesigner,顧名思義,此編譯器是jsp可視化編輯器,對于初學者有很多的幫助…

開博爾智能android播放器,高端安卓播放器的選擇——開博爾Q10Plus 二代 4K高清播放器...

隨著OPPO和三星相繼宣布退出4K藍光播放器市場,先鋒的新機遲遲無法大量鋪貨,現在市面上可選擇的4K播放器就比較少了,價格也很高了,于是很多人開始將注意力轉向了安卓機,其中開博爾是比較有代表性的廠家了,這…

17.類型轉換

自動類型轉換 容量小的數據類型可以自動轉換為容量大的數據類型 byte b 123;//byte b2 300;//報錯,超過了byte最大值127//char c -3;//報錯,char范圍是0~65536,不在范圍char c2 a;//a在ascii碼里是98int i c2;long d01 123213;float f…

docker rabbitmq_一文看懂Rabbitmq,從安裝到實戰演練

Rabbitmq的初步使用隨著微服務概念發展,大應用逐步拆分為小應用,提高開發效率,專門的人做專門的事情,逐漸的流行起來。在微服務上實現通信的方式大部分是采用rpc方式,也有升級版本的grpc。還有另外一種實現就是使用mq來…

Angular v6 正式發布

Angular 6 正式發布 Angular 6 已經正式發布了!這個主要版本并不關注于底層的框架,更多地關注于工具鏈,以及使 Angular 在未來更容易快速推進。 作為發布的一部分,我們同步了主要的框架包 (angular/core, angular/common, angula…

bootstrap五星評分_如何用純代碼實現評分星級顯示?

showRatingStars/*** showRatingStars 顯示評分星級* param {Object} myCanvas 畫布對象* param {Number} rating 評分* param {Number} counts star個數* param {Number} size star大小* param {Object} style star樣式* Example: style {* borderColor:"#21DEEF",…

18.變量

Java是一種強類型語言,每個變量都必須聲明其類型。 Java變量是程序中最基本的存儲單元,其要素包括變量名,變量類型和作用域。 變量在使用前必須對其聲明,只有在變量聲明以后,才能為其分配相應長度的存儲單元。 注意事項…

alertdialog android api 11,android – 設備api級別11的DialogFragments

我設法在兼容包的DialogFragment.java中正確修復了這個問題:改變第74行:boolean mShowsDialog false;注釋掉第232行:// mShowsDialog mContainerId 0;然后將兩個show方法更改為:public void show(FragmentManager manager, Str…