如何發布一個python包,python 發布包

本文目錄一覽:

python 程序怎麼打包發布

發布自己的python包

1. 首先先去PyPI註冊帳號

2. 配置~/.pypirc如下:

[distutils]

index-servers =

pypi

pypitest

[pypi]

username:ShaoZhengjiang

password:mypassword

[pypitest]

username:ShaoZhengjiang

password:mypassword

3. 然後註冊並上傳自己的包到測試服務器

pypi提供了一個測試服務器,我們可以在這個測試服務器上做測試。

python setup.py register -r pypitest

然後

python setup.py sdist upload -r pypitest

若沒有問題我們應該不會得到任何錯誤。

4. 上傳至PyPI

若上面的測試成功,我們就可以按照相同的步驟將包註冊並上傳。

python setup.py register -r pypi

python setup.py sdist upload -r pypi

Ok,之後我們就可以在PyPI上看到我們自己的包了。()

如何把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 = ‘not@all.com’,

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文件

怎麼把 python 打包成 exe 可執行文件

Python是一個腳本語言,被解釋器解釋執行。它的發布方式:

.py文件:對於開源項目或者源碼沒那麼重要的,直接提供源碼,需要使用者自行安裝Python並且安裝依賴的各種庫。(Python官方的各種安裝包就是這樣做的)

.pyc文件:有些公司或個人因為機密或者各種原因,不願意源碼被運行者看到,可以使用pyc文件發布,pyc文件是Python解釋器可以識別的二進制碼,故發布後也是跨平台的,需要使用者安裝相應版本的Python和依賴庫。

可執行文件:對於非碼農用戶或者一些小白用戶,你讓他裝個Python同時還要折騰一堆依賴庫,那簡直是個災難。對於此類用戶,最簡單的方式就是提供一個可執行文件,只需要把用法告訴Ta即可。比較麻煩的是需要針對不同平台需要打包不同的可執行文件(Windows,Linux,Mac,…)。

本文主要就是介紹最後一種方式,.py和.pyc都比較簡單,Python本身就可以搞定。將Python腳本打包成可執行文件有多種方式,本文重點介紹PyInstaller,其它僅作比較和參考。

Freezing Your Code

各種打包工具的對比如下(來自文章Freezing Your Code):

Solution

Windows

Linux

OS X

Python 3

License

One-file mode

Zipfile import

Eggs

pkg_resources support

bbFreeze yes yes yes no MIT no yes yes yes

py2exe yes no no yes MIT yes yes no no

pyInstaller yes yes yes no GPL yes no yes no

cx_Freeze yes yes yes yes PSF no yes yes no

py2app no no yes yes MIT no yes yes yes

PS.其中pyInstaller和cx_Freeze都是不錯的,stackoverflow上也有人建議用cx_Freeze,說是更便捷些。pkg_resources新版的pyInstaller貌似是支持的。

安裝PyInstaller

對於那些網絡比較穩定,能夠流暢使用pip源地址的用戶,直接下面的命令就可以搞定:

pip install pyinstaller

通常我們會下載源碼包,然後進入包目錄,執行下面的命令(需要安裝setuptools):

python setup.py install

安裝完後,檢查安裝成功與否:

pyinstaller –version

安裝成功後,就可以使用下面的命令了:

pyinstaller : 打包可執行文件的主要命令,詳細用法下面會介紹。

pyi-archive_viewer : 查看可執行包裡面的文件列表。

pyi-bindepend : 查看可執行文件依賴的動態庫(.so或.dll文件)

pyi-… : 等等。

使用PyInstaller

pyinstaller的語法:

pyinstaller [options] script [script …] | specfile

最簡單的用法,在和myscript.py同目錄下執行命令:

pyinstaller mycript.py

然後會看到新增加了兩個目錄build和dist,dist下面的文件就是可以發布的可執行文件,對於上面的命令你會發現dist目錄下面有一堆文件,各種都動態庫文件和myscrip可執行文件。有時這樣感覺比較麻煩,需要打包dist下面的所有東西才能發布,萬一丟掉一個動態庫就無法運行了,好在pyInstaller支持單文件模式,只需要執行:

pyinstaller -F mycript.py

你會發現dist下面只有一個可執行文件,這個單文件就可以發布了,可以運行在你正在使用的操作系統類似的系統的下面。

當然,pyinstaller還有各種選項,有通用選項,如-d選項用於debug,了解pyInstaller執行的過程;還有一些針對不同平台的選項,具體用法可以訪問PyInstaller官方WIKI。

在執行pyInstaller命令的時候,會在和腳本相同目錄下,生成一個.spec文件,該文件會告訴pyinstaller如何處理你的所有腳本,同時包含了命令選項。一般我們不用去理會這個文件,若需要打包數據文件,或者給打包的二進制增加一些Python的運行時選項時…一些高級打包選項時,需要手動編輯.spec文件。可以使用:

pyi-makespec options script [script …]

創建一個.spec文件,對於手動編輯的.spec文件,我們可以使用下面任意一條命令:

pyinstaller specfile

pyi-build specfile

PyInstaller的原理簡介

PyInstaller其實就是把python解析器和你自己的腳本打包成一個可執行的文件,和編譯成真正的機器碼完全是兩回事,所以千萬不要指望成打包成一個可執行文件會提高運行效率,相反可能會降低運行效率,好處就是在運行者的機器上不用安裝python和你的腳本依賴的庫。在Linux操作系統下,它主要用的binutil工具包裡面的ldd和objdump命令。

PyInstaller輸入你指定的的腳本,首先分析腳本所依賴的其他腳本,然後去查找,複製,把所有相關的腳本收集起來,包括Python解析器,然後把這些文件放在一個目錄下,或者打包進一個可執行文件裡面。

可以直接發布輸出的整個文件夾裡面的文件,或者生成的可執行文件。你只需要告訴用戶,你的應用App是自我包含的,不需要安裝其他包,或某個版本的Python,就可以直接運行了。

需要注意的是,PyInstaller打包的執行文件,只能在和打包機器系統同樣的環境下。也就是說,不具備可移植性,若需要在不同系統上運行,就必須針對該平台進行打包。

如何將自己的Python代碼打包發布到pypi上

Python是親Linux的語言,所以有一個Linux風格shell對Python開發非常有益 因此,mac ubuntu均可,win下python各種包非常麻煩

如何將python開發的程序打包發布

1、下載並安裝py2exe,可下載最新版本。

2、編寫安裝腳本,比較簡單,不過多解釋,如下:

Screenshot_setup.py

#!/usr/bin/env python

# -*- coding: utf-8 -*-

from distutils.core import setup

import py2exe

includes = [“encodings”, “encodings.*”]

data_files = [‘CameraDll.dll’]

options = {“py2exe”:

{ “compressed”: 1,

“optimize”: 2,

“bundle_files”: 1,

“includes”: includes

}

}

setup(

version = “1.0”,

description = “Screenshot Tool”,

name = “Screenshot Tool”,

options = options,

zipfile=None,

data_files = data_files,

console=[{“script”: “Screenshot.py”, “icon_resources”: [(1, “Screenshot.ico”)] }]

)

各參數含義見第5小節或執行python命令行下執行help(py2exe)查看。

3、打包程序:

a、將要找包的程序、文件和打包腳本放在同一目錄下,如下:

E:\tmp\pyexe_tmptree /F

文件夾 PATH 列表

卷序列號碼為 0007F240 101F:F68D

E:.

CameraDll.dll

screenshot.ico

Screenshot.py

screenshot_setup.py

沒有子文件夾

E:\tmp\pyexe_tmp

b、執行打包腳本:

E:\tmp\pyexe_tmppython screenshot_setup.py py2exe

python screenshot_setup.py py2exe

running py2exe

creating E:\tmp\pyexe_tmp\build

creating E:\tmp\pyexe_tmp\build\bdist.win32

creating E:\tmp\pyexe_tmp\build\bdist.win32\winexe

creating E:\tmp\pyexe_tmp\build\bdist.win32\winexe\collect-2.6

creating E:\tmp\pyexe_tmp\build\bdist.win32\winexe\bundle-2.6

creating E:\tmp\pyexe_tmp\build\bdist.win32\winexe\temp

creating E:\tmp\pyexe_tmp\dist

*** searching for required modules ***

*** parsing results ***

*** finding dlls needed ***

*** create binaries ***

*** byte compile python files ***

writing byte-compilation script ‘e:\tmp\tmp1ecbcw.py’

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/180151.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-22 05:11
下一篇 2024-11-22 05:11

相關推薦

  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • Python編程二級證書考試相關現已可以上網購買

    計算機二級Python考試是一項重要的國家級認證考試,也是Python編程的入門考試。與其他考試一樣,Python編程二級證書的考生需要進入正式考試,而為了備考,這篇文章將詳細介紹…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29

發表回復

登錄後才能評論