1. 程式人生 > >上傳python的包至pypi伺服器及crate.io

上傳python的包至pypi伺服器及crate.io

前言

我們經常可以看到github上的python開源專案有pipy的選項,及下載量的統計,是不是很驚訝於他們的professional?

我們要如何打造自已的downloads統計?這個統計資訊其實來自於crate.io,一個pypi的映象站點,只要你上傳了包在pypi,crate.io就會自動儲存相關的包並統計相關資訊.

另外,這個包傳到pip上, 這樣就可以直接用 pip install yourproject,或者只在requirments.txt中寫個your-project就可以哦了;)

是不是也很想要在自已的開源專案加這個?那跟我來吧。

註冊賬號

   記住你的密碼(也可以用gmail登入)

專案修改

首先建立專案檔案和setup檔案。
目錄檔案結構如下:

project/
    simpletest/
        __init__.py
        test.py
    setup.py
假設專案檔案只有一個simpletest包,裡面有一個test.py檔案。
建立的setup.py檔案格式大致如下,其中,install_requires欄位可以列出依賴的包資訊,

使用者使用pip或easy_install安裝時會自動下載依賴的包。詳細的格式參考文件

from setuptools import setup, find_packages

setup(
    name = 'simpletest',
    version = '0.0.1',
    keywords = ('simple', 'test'),
    description = 'just a simple test',
    license = 'MIT License',
    install_requires = ['simplejson>=1.1'],

    author = 'test',
    author_email = '
[email protected]
', packages = find_packages(), platforms = 'any', )

程式碼打包,打包只需要執行python setup.py xxx命令即可,其中xxx是打包格式的選項,如下
# 以下所有生成檔案將在當前路徑下 dist 目錄中
python setup.py bdist_egg # 生成easy_install支援的格式 
python setup.py sdist     # 生成pip支援的格式,下文以此為例

釋出到pypi首先需要註冊一個賬號,然後進行如下兩步:


註冊package。輸入python setup.py register。

上傳檔案。輸入python setup.py sdist upload。

安裝測試

上傳成功後,就可以使用pip來下載安裝了

另外,pypi還有一個測試伺服器,可以在這個測試伺服器上做測試,
測試的時候需要給命令指定額外的"-r"或"-i"選項,
如python setup.py register -r "https://testpypi.python.org/pypi", python setup.py sdist upload -r "https://testpypi.python.org/pypi", pip install -i "https://testpypi.python.org/pypi" simpletest

釋出到測試伺服器的時候,建議在linux或cygwin中釋出,如果是在windows中,參考文件,需要生成.pypirc檔案
在github你的專案中的README.rst中新增顯示圖片如cloudsafe改成你的專案名稱
.. image:: https://pypip.in/v/cloudsafe/badge.png
    :target: https://crate.io/packages/cloudsafe/
.. image:: https://pypip.in/d/cloudsafe/badge.png
    :target: https://crate.io/packages/cloudsafe/

ps.你剛上傳的專案不一定能在crate.io中搜到。但是你可以直接通過網址訪問
https://crate.io/packages/cloudsafe/

最終效果如圖


reference

http://yejinxin.github.io/distribute-python-packages-to-pypi-server/

http://liluo.org/blog/2012/08/how-to-create-python-egg/
http://blog.jkey.lu/2013/04/11/create-python-egg/
http://docs.python.org/2/distutils/index.html



相關推薦

pythonpypi伺服器crate.io

前言 我們經常可以看到github上的python開源專案有pipy的選項,及下載量的統計,是不是很驚訝於他們的professional? 我們要如何打造自已的downloads統計?這個統計資訊其實來自於crate.io,一個pypi的映象站點,只要你上傳了包在pyp

deploy和手動jarnexus

一、nexus的好處        Maven預設提供的中央倉庫是在遠端網路服務Appache提供的,這對於我們開發時不合理的。如果我們沒網了或者什麼情況,我們怎麼辦?我們需要的jar包中央庫沒有或者是要收費怎麼辦?也就是說我們隊中央倉庫的依賴性太大。而N

mavenJar到私服從私服下載jar相關配置

有關使用Maven常見問題總結(Eclipse中使用Maven、Maven專案部署到tomcat等問題) http://blog.csdn.net/sunitjy/article/details/42709311 ***************************************

windows本地專案linux伺服器中的gitlab

1、安裝git:    https://git-scm.com/downloads          linux伺服器中安裝gitlab:  https://blog.csdn.net/

mavenjar私服

前提:本地dos視窗執行mvn -v檢視是否配置mvn環境,沒有配置的話需要先配置mvn環境; 1、修改本地maven軟體 conf/settings.xml,加入使用者許可權: </servers>     <server>  &

linux用git命令更新程式碼f伺服器

一、從Git倉庫開啟 git bash 命令輸入框。檢視本地分支檔案資訊,確保更新時不產生衝突 二、將當前工作目錄中更改或者新增的檔案加入到Git的索引中,加入到Git的索引中就表示記入了版本

關於vue 中 使用 webuploader 遇到的坑解決方案,本文以分片為例解說,壓縮大小為2G左右在專案中實測

首先說一下vue中使用webuploader該如何引入呼叫   1. 肯定是安裝操作, 本人用的是淘寶映象 cnpm i webuploader -S  如果你沒有安裝淘寶映象,則使用 npm i webuploader -S   2. 引入操作,在具體的vue元件中引入 , import We

war伺服器(tomcat的webapps目錄下)

使用Xftp看下伺服器中的舊war包,然後把它刪掉 我們的目標是將本機的新war包替換伺服器中的舊war包 使用Xshell連線伺服器,ps看下tomcat程序是否正在執行,如果在執行我們把他關閉,然後再看下程序中tomcat不在運行了 然後將tomcat的web

使用HttpClient4實現檔案請求的傳送,伺服器端以MultipartFile形式接收(附依賴jar地址)

今天學習使用了HttpClient4.2向服務端傳送上傳檔案的post請求,由於伺服器端採用MultipartFile形式接收,查詢資料後決定使用HttpClient4.2實現,以下是實現程式碼(僅作測試使用): public void testtask

git版本控制之上檔案遠端伺服器拉取遠端倉庫檔案本地伺服器

git上傳檔案至遠端伺服器github1.     上傳操作(1)命令列進入在專案目錄下:cd workspase(2)初始化:git init(3)連線遠端倉庫:git remote add origin github對應倉庫地址以上已設定則直接跳過(4)提交至本地倉庫:g

大檔案阿里雲伺服器解決方案(理論無限大檔案,支援批量處理)

一、背景     目前本地電腦有一個約120G壓縮檔案資料需要上傳到阿里雲伺服器。 二、方案 1.首先嚐試直接從本地複製檔案到雲伺服器,在檔案比較小的情況下OK。這個大檔案中途若遇到網路不穩定將會異常斷線,pass。 2.其次是將該壓縮拆分至每個少於20G,上傳至百度雲盤,

阿里雲ESC學生伺服器搭建springboot專案生產環境(Mysql+JDK)不需要安裝

  嗯,之前伺服器被挖礦的病毒弄的登入不進去了,所以聯絡了阿里雲客服,提交工單,最後建議重置,所以我就重置了,之後只能在裝一次了      嗯,學習經驗,docker如果懂的不是太多,不要隨便雲部署,都給別人挖礦了。   Mysql安裝:中間有選擇輸入 y 即可: 下載mysql源安裝包: wge

Linux服務器通過aws命令行文件S3

aws linux s3 上傳文件目的Linux服務器通過AWS命令行上傳文件至S3配置打開你的AWS控制臺;連接你的Linux服務器,按照以下步驟操作;# 安裝pip yum -y install python-pip # 安裝awscli pip install awscli # 初始化配置 aw

Mavenjar到私服

new posit setting 用戶 lease release -1 str family 1、認證,在M2_HOME/conf/settings.xml配置用戶名密碼 2、在將要上傳項目的pom.xml中配置jar包上傳路徑url <distrib

wireshark抓文件的結果記錄

col test alt ipa submit 是什麽 技術 key txt 如果我們再一個表單中放了一個text的input 還放了一個file的input進行文件上傳,此時用wireshark抓到的包應該是什麽樣子的呢 html代碼 <form actio

ajaxFileUpload帶參數文件JS驗證文件大小

resp 修改 except style js驗證 epic 創建 cti filepath 本代碼片段用於spring boot+hibernate,用maven構建一:ajaxFileUpload為了實現無刷新異步提交文件,構建 iframe 然後創建form表單 再將

文件ftp

ont {0} use code eth ftp request cnblogs .get public class UploadFile { string ftpServerIP; string ftpRemotePath;

使用svn代碼

-m 而且 重新 上傳 check 日誌 virt svn服務 使用 使用命令 svn import 本地目錄 服務器目錄 -m“日誌記錄” 我的SVN服務器是virtualSVN,當指定的服務器目錄不存在時,使用此命令會提示權限不夠,我是先在服務器上建立一個目錄,再使用此

facebook視頻python 返回錯誤code:100,'type':OAuthException

log 上傳 except 分享 ice ces evel hex cnblogs 首先重新獲取訪問口令token: https://developers.facebook.com/tools/debug/accesstoken/?q=EAAYDuzyd3eYBAK9

idea jar到nexus

lease 必須 serve 12.1 rep post onf color ide 一.項目pom配置 <distributionManagement> <repository> <id>rel