當前位置:首頁 » 文件管理 » pypi上傳

pypi上傳

發布時間: 2023-12-07 01:15:29

『壹』 如何將自己的python代碼打包發布到pypi上

    什麼是pypi

    簡單的說pypi是一個python包的倉庫,裡面有很多別人寫好的python庫,你可以通過easy_install或者pip進行安裝,方便用戶更方面的使用你的代碼模塊。

    將代碼打包並上傳到pypi上,大體上分為以下幾步:

    1、整理代碼的目錄結構,方便打包和python的import,為了方便引用,需要將代碼模塊變成一個包,所以需要將功能代碼用目錄來整合方便引用,並且需要創建__init__文件,__init__中可以沒有內容,也可以在__init__文件中進行import(from .extractor import Document)操作,以減少整體模塊引用時import的層數,避免錯誤。

[html]viewplain
├──./tidypage
│├──./tidypage/cleaners.py
│├──./tidypage/extractor.py
│├──./tidypage/__init__.py
│└──./tidypage/titles.py

    2、功能模塊的目錄整理好後,就可以開始整理和添加發布到pypi上所使用的文件了

tidy_page
├──LICENSE
├──README.rst
├──requirements.txt
├──setup.py
├──tidypage
│├──cleaners.py
│├──extractor.py
│├──__init__.py
│└──titles.py
  • 就是將原來的目錄深移一層,文件夾名稱可以根據自己意願。然後在到第一層的目錄下創建些特殊文件,具體你可以看看下面這個文件結構你就明白了

    LICENSE文件是授權文件,比如:MIT license, APACHElicense

    README.rst 文件想必大家都不陌生,其實就是項目介紹和使用說明

    setup文件才是重點,是python模塊安裝所需要的文件,它的格式如下:

#!/usr/bin/envpython
from__future__importprint_function
fromsetuptoolsimportsetup,find_packages
importsys

setup(
name="tidy-page",
version="0.1.1",
author="DesionWang",
author_email="[email protected]",
description="htmltextparser,getthecontentformhtmlpage",
long_description=open("README.rst").read(),
license="MIT",
url="https://github.com/desion/tidy_page",
packages=['tidypage'],
install_requires=[
"beautifulsoup4",
lxml_requirement
],
classifiers=[
"Environment::WebEnvironment",
"IntendedAudience::Developers",
"OperatingSystem::OSIndependent",
"Topic::TextProcessing::Indexing",
"Topic::Utilities",
"Topic::Internet",
"Topic::SoftwareDevelopment::Libraries::PythonMoles",
"ProgrammingLanguage::Python",
"ProgrammingLanguage::Python::2",
"ProgrammingLanguage::Python::2.6",
"ProgrammingLanguage::Python::2.7",
],
)
  • NAME名字,一般放你包的名字即可PACKAGES包含的包,可以多個,這是一個列表DESCRIPTION關於這個包的描述LONG_DESCRIPTION參見read方法說明KEYWORDS關於當前包的一些關鍵字,方便PyPI進行分類。AUTHOR誰是這個包的作者,寫誰的名字吧AUTHOR_EMAIL作者的郵件地址URL你這個包的項目地址,如果有,給一個吧,沒有你直接填寫在PyPI你這個包的地址也是可以的VERSION當前包的版本,這個按你自己需要的版本控制方式來LICENSE授權方式INSTALL_REQUIRES模塊所依賴的python模塊
  • 文中的classifiers的內容並不是隨便填寫的,你需要參照本文參考文檔中的PyPI Classifiers來寫

    3、開始使用Distutils進行打包

    為了保證效果,在打包之前我們可以驗證setup.py的正確性,執行下面的代碼

    python setup.py check

  • 輸出一般是running check如果有錯誤或者警告,就會在此之後顯示沒有任何顯示表示Distutils認可你這個setup.py文件。


  • 如果沒有問題,那麼就可以正式打包,執行下面的代碼:


  • python setup.py sdist



  • 執行完成後,會在頂層目錄下生成dist目錄和egg目錄

tidy_page
├──tidy_page/dist
│├──tidy_page/dist/tidy-page-0.1.0.tar.gz
│└──tidy_page/dist/tidy-page-0.1.1.tar.gz
├──tidy_page/LICENSE
├──tidy_page/README.rst
├──tidy_page/setup.py
├──tidy_page/tidypage
│├──tidy_page/tidypage/cleaners.py
│├──tidy_page/tidypage/extractor.py
│├──tidy_page/tidypage/__init__.py
│└──tidy_page/tidypage/titles.py
├──tidy_page/tidy_page.egg-info
│├──tidy_page/tidy_page.egg-info/dependency_links.txt
│├──tidy_page/tidy_page.egg-info/PKG-INFO
│├──tidy_page/tidy_page.egg-info/requires.txt
│├──tidy_page/tidy_page.egg-info/SOURCES.txt
│└──tidy_page/tidy_page.egg-info/top_level.txt

  • 4、打包完成後就可以准備將打包好的模塊上傳到pypi了,首先你需要在pypi上進行注冊gotoPyPI Live

    注冊完成後,你需要在本地創建好pypi的配置文件,不然有可能會出現使用http無法上傳到pypi的問題

    Create a.pypircconfiguration file,在用戶的home目錄下創建.pypirc文件,文件的內容如下

  • [distutils]index-servers=pypi[pypi]repository=https://pypi.python.org/pypiusername=your_usernamepassword=your_passwor
chmod600~/.pypirc
pythonsetup.pyregister-rpypi
  • 在pypi上注冊模塊

  • python setup.py sdist upload -r pypi

  • 上傳python文件包,沒有問題你就可以在pypi上看到你上傳的包了並且可以使用pip搜索和install你的python包了


『貳』 如何把python代碼上傳到伺服器上

使用pip或easy_install可以管理和安裝python的package包,實際上它們都是從pypi伺服器中搜索和下載package的。目前在pypi伺服器上,有超過三萬多個package,同時還允許我們將自己的代碼也上傳發布到伺服器上。這樣,世界上的所有人都能使用pip或easy_install來下載使用我們的代碼了。
具體步驟如下:
首先創建項目文件和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 = 'yjx',
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。
發布到pypi首先需要注冊一個賬號,然後進行如下兩步:
注冊package。輸入python setup.py register。
上傳文件。輸入python setup.py sdist upload。
安裝測試
上傳成功後,就可以使用pip來下載安裝了。
另外,pypi還有一個測試伺服器,可以在這個測試伺服器上做測試,測試的時候需要給命令指定額外的"-r"或"-i"選項,如python
setup.py register -r "",python
setup.py sdist upload -r "",pip
install -i "" simpletest。
發布到測試伺服器的時候,建議在linux或cygwin中發布,如果是在windows中,參考文檔,需要生成.pypirc文件

『叄』 如何把c的文件打包上傳到pypi,讓用戶通過pip安裝的時候編譯c的代碼

使用distutils.core中的Extension函數即可。具體方法為,在setup.py中,添加如下代碼:
my_c_exten = Extension('期望編寬槐陪譯後的庫名', sources=['c庫文件的相對路徑'])
setup(
...
ext_moles=[my_c_exten],
)

這樣,在打包時,指定的c庫文明顫件也會被上傳慎蠢上去,在用戶執行install時,就會在安裝目錄中(例如是lib/python2.7/site-packages/)中生成把這個c文件進行編譯。這樣就可以python代碼中調用該庫了。

熱點內容
sql127001 發布:2025-01-21 18:31:50 瀏覽:112
伺服器ip是什麼格式 發布:2025-01-21 18:13:13 瀏覽:706
oa和郵箱的初始密碼在哪裡改 發布:2025-01-21 18:08:46 瀏覽:52
如何去除pdf的加密 發布:2025-01-21 18:08:46 瀏覽:565
雲端的伺服器怎麼設置ip 發布:2025-01-21 17:48:52 瀏覽:186
會議腳本 發布:2025-01-21 17:41:29 瀏覽:23
android的toast 發布:2025-01-21 17:41:28 瀏覽:9
linux默認安裝的mysql 發布:2025-01-21 17:40:08 瀏覽:912
java輸出資料庫 發布:2025-01-21 17:35:38 瀏覽:963
幀緩存的精度 發布:2025-01-21 17:35:02 瀏覽:657