[心得]python pip私人庫安裝部署經驗總結
背景
pip打包:
setuptools
pip支援從wheel安裝,解除安裝,依賴覆蓋,列出已裝的包,以及pep438過渡釋出
而easy_install則支援egg安裝,修改系統路徑,多版本安裝
egg 是一個包含所有包資料的檔案包。在理想情況中,egg 是一個使用 zip 壓縮的檔案,其中包括了所有需要的包檔案。但是在某些情況下,setuptools 會決定(或被開關告知)包不應該是 zip 壓縮的。與 Java的 JAR檔案 類似。
PyPA團隊 開發的Python打包生態環境工具鏈: pip, setuptools, virtualenv 和 wheel.
wheel是用於替換egg格式,通過擴充套件setuptools,增加 bdist_wheel 功能就可以打包wheel檔案。
pip可以直接安裝wheel格式軟體包,但無法安裝egg格式軟體包;如果需要安裝egg格式,只能使用easy_install.
乾貨
1. yum install -y python-tools
2. install pip
$ rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
$ yum install -y python-pip
ref:http://sharadchhetri.com/2014/05/30/install-pip-centos-rhel-ubuntu-debian/
3. easy_install是由PEAK(Python Enterprise Application Kit)開發的setuptools包裡帶的一個命令,它用來安裝egg包。egg包是目前最流行的python應用打包部署方式。
$ yum install -y python-setuptools
4. install supervisor
ref:http://supervisord.org/installing.html
5. pip install pypiserver
升級python
$ yum install -y centos-release-SCL
$ yum install -y python27
ref:https://github.com/h2oai/h2o-2/wiki/installing-python-2.7-on-centos-6.3.-follow-this-sequence-exactly-for-centos-machine-only
6.啟動服務:
target_dir=/data/jenkins-slave/workspace/pip_repository_deploy
${target_dir}/scripts/start_supervisor.sh
7.停止服務
target_dir=/data/jenkins-slave/workspace/pip_repository_deploy
${target_dir}/scripts/stop_supervisor.sh
upload them remotely with a python setup.py upload command. Currently only password-protected uploads are supported!
pip install passlib
可能會碰到找不到htpasswd程式,執行這個化解:
yum install -y httpd
安裝http服務
htpasswd -sc htpasswd.txt public
輸入金鑰: xxx
然後在工作機器的家目錄建立一個.pypirc
內容如下:
[distutils]
index-servers =
privatepypi
[privatepypi]
repository:http://pypi.python.cm:3141
username:public
password:xxx
怎麼樣使得包裡面包含一個資料資料夾:
setup.py其實是python工具包distutils的配置檔案,setuptools就是基於distutils來做的。 在setup.py中通過setup函式來配置打包資訊。
from setuptools import setup, find_packages
setup(name='hello_pypi',
version='1.0',
py_modules=['hello_pypi'],
url='http://pypi.python.cm/packages/hello_pypi-1.0.tar.gz',
author='tangchen',
author_email='tangchen2008@gmail.com',
#packages=find_packages('utils'), #package to utils dir
#package_dir={'':'utils'},
include_package_data=True,
)
有些 python application 會依賴一些非 *.py 資料檔案,比如 image, documentation 和 data tables 等,我們把這些檔案統稱為 data file,所以打包時需將這些檔案包含在內。現在往 packagedemo 新增 data 目錄和相關檔案,在MANIFEST.in中include進來。
關鍵在"include_package_data=True,"
並且打包目錄建立一個MANIFEST.in,內容如下
include data/*
然後執行:
python setup.py sdist
這樣打好的包裡面就包含相應的檔案了
refer:
https://yijingping.github.io/2013/07/25/setting-up-your-own-pypi-server.html
http://stackoverflow.com/questions/18828805/how-can-i-install-packages-hosted-in-a-private-pypi-using-setup-py
http://lingxiankong.github.io/blog/2013/12/23/python-setup/
相關文章
- (原創)下載安裝Python第三方包庫pip安裝失敗總結Python
- 批量安裝python庫函式—pipPython函式
- Python pip安裝Python
- python安裝pipPython
- MySQL 5.7安裝部署總結MySql
- Python多版本pip安裝庫的問題Python
- 使用Docker部署Python應用的一些經驗總結DockerPython
- Capistrano + SVN 個人安裝部署總結API
- RabbitMQ 安裝部署與配置總結MQ
- Python pip的安裝及解除安裝Python
- python怎麼安裝pip?Python
- 分享 | OpenVINO的安裝、上手、學習路線經驗總結
- 從硬碟安裝Fedora Core 4.0(實際經驗總結)(轉)硬碟
- python資料庫-安裝問題總結(48)Python資料庫
- Python 庫/模組的pip安裝和IPython的使用Python
- python必須安裝pip嗎Python
- pip 安裝
- 安裝pip
- 一位Android大牛的BAT面試心得與經驗總結AndroidBAT面試
- ORACLE資料庫開發經驗總結Oracle資料庫
- 專案管理心得:一個專案經理的個人體會、經驗總結專案管理
- 如何透過python pip安裝第三方庫Python
- 工作經驗總結
- vue經驗總結Vue
- mysql經驗總結MySql
- Java經驗總結Java
- Storm經驗總結ORM
- Resin 經驗總結
- pip 命令總結
- python的pip快速安裝程式碼Python
- windows 安裝python後pip安裝路徑問題WindowsPython
- Oracle 11G (第二版,11.2)安裝經驗總結Oracle
- 安裝python pip,再安裝request模組,執行python程式碼Python
- python中的pip的安裝以及通過pip命令對selenium進行解除安裝和安裝Python
- 資料庫儲存選型經驗總結資料庫
- CentOS安裝pipCentOS
- 用python建立資料庫監控平臺(2)安裝pipPython資料庫
- CENTOS 6.5 安裝 Python 2.7 總結CentOSPython