国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

setup.py方式打包自己的python代碼并可以用pip install安裝

這篇具有很好參考價(jià)值的文章主要介紹了setup.py方式打包自己的python代碼并可以用pip install安裝。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

所需文件及目錄規(guī)范

注意setup.py文件和MANIFEST.in文件需要放在和你需要打包的目錄同一級(jí)下,例如我這里需要打包的就是webconsole文件夾(這里webconsole文件夾指的是業(yè)務(wù)代碼文件夾也就是我下圖圈出來的文件夾,而不是最外層那個(gè)webconsole項(xiàng)目目錄文件夾,因?yàn)槲疫@里起了相同的文件夾名稱,怕各位混淆所以解釋一下)。靜態(tài)文件最好也放在同一級(jí)目錄下,當(dāng)然放在webconsole這種業(yè)務(wù)文件夾內(nèi)部也是可以的,這個(gè)具體看需求情況。
python setup.py,python,pip,github
上面那張圖大家就先大概明確一下具體是干什么的, 我后面調(diào)整了目錄結(jié)構(gòu), 將static文件夾和templates文件夾都放到了業(yè)務(wù)代碼webconsole文件夾下, 這里解釋下為什么, 如果像我上圖一樣的話,最后打包完, pip install 自己的包, 那么static| templates| webconsole 這三個(gè)文件夾就會(huì)分散在各處,而不是都在一個(gè)webconsole包下.

我后面的內(nèi)容都會(huì)以下圖的目錄結(jié)構(gòu)來講解
python setup.py,python,pip,github

示例演示

這里是指定我需要把這兩個(gè)文件夾下的文件打包進(jìn)去, 其中websocket/static/** 指的是業(yè)務(wù)文件夾websocket下的static文件夾下所有的文件包括子文件夾遞歸所有文件,
websocket/templates/* 指的是業(yè)務(wù)文件夾websocket下的, 不遞歸子文件夾
python setup.py,python,pip,github

其中MANIFEST.in文件的語法如下圖所示,具體內(nèi)容參考官方文檔
python setup.py,python,pip,github
下面的的setup文件沒什么好說的,網(wǎng)上有很多解釋,稍微貼一點(diǎn)用到的

setup() 函數(shù)中的部分參數(shù)含義如下:

name:包的名稱。
version:包的版本號(hào)。
description:包的簡要描述。
packages:包含的模塊或包的列表。
install_requires:該包所依賴的其他包。
classifiers:該包適用的 Python 版本、支持的操作系統(tǒng)、遵循的協(xié)議等信息。

python setup.py,python,pip,github

打包命令需要在項(xiàng)目文件夾下,以我的項(xiàng)目為例也就是項(xiàng)目文件webconsole目錄下,執(zhí)行命令

python setup.py sdist bdist_wheel

python setup.py,python,pip,github

完成后會(huì)在項(xiàng)目文件夾下生成一個(gè)dist文件夾,里面包含了兩個(gè)文件,如圖所示
python setup.py,python,pip,github

如果改動(dòng)了上面打包的兩個(gè)文件,setup.py文件和MANIFEST.in,那么一定一定一定要先刪除下圖的這個(gè)文件夾,不然打包還是用的上一次的配置,這點(diǎn)很坑?。?!
python setup.py,python,pip,github

打包靜態(tài)文件補(bǔ)充說明

這里再解釋一下把靜態(tài)資源打包進(jìn)去的問題. 首先明確一下,我需要打包的是我的業(yè)務(wù)代碼文件夾webconsole下的所有東西, 以及最外層的項(xiàng)目文件夾webconsole下的templates和static目錄下的所有東西

這里有兩個(gè)點(diǎn)需要注意下, 第一個(gè)是你想打包靜態(tài)文件首先要能掃描到你的文件夾, 這里setup.py中的packages我寫的是find_packages(), 而把webconsole注釋掉了, 是因?yàn)槲蚁胍獟呙桧?xiàng)目文件夾webconsole下的所有文件夾及內(nèi)容, 這樣保險(xiǎn)一點(diǎn).
如果只想要webconsole業(yè)務(wù)文件下的文件,其余的不需要, 那就寫webconsole就行了

然后我需要將靜態(tài)文件打包進(jìn)去,有兩種方式:

第一種是在setup.py的package_data中指定

注意這里的 static/** 指的是static文件夾下所有遞歸的文件都會(huì)被放進(jìn)去, 而templates/* 這個(gè)只有一個(gè) * 星號(hào)指的是就只放templates下的文件,不遞歸其內(nèi)部的文件夾 當(dāng)然這里的 static 文件夾和 templates文件夾都是指的前面一步 setup.py文件中 packages 這一屬性所掃描到的包下的內(nèi)容文件
python setup.py,python,pip,github

第二種方式就是在MANIFEST.in文件中指定, 此時(shí)setup.py中的package_data屬性就可以注釋掉了,只需要在MANIFEST.in文件中寫include規(guī)則,如下圖,(不推薦,雖然可以把靜態(tài)文件打包到包里,但是pip install的時(shí)候,包里面的一部分靜態(tài)文件install進(jìn)去了,一部分沒有install進(jìn)去,不知道為啥,有興趣的可以自行研究

python setup.py,python,pip,github

引用自己打的包

在其他項(xiàng)目中如果想引用自己打的包,那么直接pip install tar包文件路徑,就可以把自己的包引入進(jìn)項(xiàng)目里了。

pip install /path/to/your/package/dist/mypackage-0.1.0.tar.gz

如果pip install報(bào)錯(cuò)No module named ‘setuptools.command.build’,那么可能是setup版本過高或過低,我這邊是過高了,所以卸載了原來的版本(67.6.0)重新裝了個(gè)低版本(65.6.3)。文章來源地址http://www.zghlxwxcb.cn/news/detail-858914.html

到了這里,關(guān)于setup.py方式打包自己的python代碼并可以用pip install安裝的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 解決pip報(bào)錯(cuò)“python setup.py egg_info did not run successfully.”

    解決pip報(bào)錯(cuò)“python setup.py egg_info did not run successfully.”

    網(wǎng)上有很多關(guān)于這個(gè)錯(cuò)誤的文章,我想說的是這個(gè)報(bào)錯(cuò)本身什么也說明不了,因?yàn)檎嬲袃r(jià)值的報(bào)錯(cuò)是后面那一長串代碼的報(bào)錯(cuò)信息。以我為例,我遇到的問題是: 這個(gè)報(bào)錯(cuò)顯示在某某文件中,本該為str類型的對象實(shí)際上并非是str類型。因此我選擇打開 File “D:anacondaenvs

    2024年02月16日
    瀏覽(26)
  • python setup.py install報(bào)錯(cuò)“error: can‘t create or remove files in install directory”

    python setup.py install報(bào)錯(cuò)“error: can‘t create or remove files in install directory”

    問題描述: 在服務(wù)器上配置安裝pip時(shí)候缺少setuptools,安裝setuptools報(bào)錯(cuò): ? warnings.warn( error: can\\\'t create or remove files in install directory 有的朋友使用 即可解決。 但是,我使用了之后報(bào)錯(cuò) 右下角報(bào)錯(cuò)且讓我打開幫助: Troubleshoot Visual Studio Code Integrated Terminal launch failures ?這位騰騰任

    2024年02月06日
    瀏覽(20)
  • 解決pip安裝pygame提示python setup.py egg_info did not run successfully.│ exit code: 1錯(cuò)誤

    當(dāng)使用命令【 pip install pygame 】進(jìn)行安裝時(shí)提示【 Preparing metadata (setup.py) ... error error: subprocess-exited-with-error × python setup.py egg_info did not run successfully. │ exit code: 1 ╰─ [77 lines of output] 】報(bào)錯(cuò)信息如下圖所示:

    2024年02月03日
    瀏覽(29)
  • python distutils打包C/C++模塊,執(zhí)行python setup.py build_ext --inplace時(shí)報(bào)錯(cuò)cl

    python distutils打包C/C++模塊,執(zhí)行python setup.py build_ext --inplace時(shí)報(bào)錯(cuò)cl

    python可以把C/C++代碼編譯并打包為pyd模塊,從而可以使python腳本直接調(diào)用C/C++模塊功能。 我在執(zhí)行python setup.py build_ext --inplace時(shí)遇到了缺失cl.exe的錯(cuò)誤提示,然后用pip安裝了cl。 再次編譯,提示cl: error: no such option: -I,改變cl版本仍然不行,百思不得其解。 后來意識(shí)到C/C++模塊

    2024年02月06日
    瀏覽(24)
  • Command “python setup.py egg_info“ failed with error code 1 in /tmp/pip-build-...  解決方法

    Command “python setup.py egg_info“ failed with error code 1 in /tmp/pip-build-... 解決方法

    今天在虛擬機(jī)上配置Python的環(huán)境,安裝pylint的時(shí)候報(bào)錯(cuò): 一開始以為是pip不夠新,于是更新了一下pip: 提示更新成功,但安裝pylint依舊報(bào)同樣的錯(cuò)。 仔細(xì)閱讀黃字提示后發(fā)現(xiàn):不應(yīng)該使用sudo,去掉sudo后嘗試安裝: 果然就沒有問題了。

    2024年02月12日
    瀏覽(21)
  • 【問題記錄】Command “python setup.py egg_info“ failed with error code 1 in /tmp/pip-build-*

    ????????在Linux中使用pip安裝命令時(shí)出現(xiàn)報(bào)錯(cuò):Command “python setup.py egg_info“ failed with error code 1 in /tmp/pip-build-* ? ? ? ? 安裝了不適合當(dāng)前Python版本的pip,例如Python3.5安裝了帶有f-字符串(Python3.5后才支持的一種新的增強(qiáng)型字符串格式化方式)代碼的pip ? ? ? ? 方法一:更新

    2024年02月16日
    瀏覽(27)
  • 玩轉(zhuǎn)ROS2的填坑之路-SetuptoolsDeprecationWarning: setup.py install is deprecated

    目錄 提出問題——SetuptoolsDeprecationWarning 分析問題——構(gòu)建時(shí)用setup.py的方法已被棄用 解決方法——降檔使用setuptools 贈(zèng)品:如何查詢setuptools的版本 自從使用Ubuntu22.04和ROS2后,接觸到的項(xiàng)目都是用C++。最近為了調(diào)用pymodbus,開始嘗試用python編寫軟件包。于是遇到了一系列的小

    2024年02月05日
    瀏覽(26)
  • 已解決DEPRECATION: phrasetree is being installed using the legacy ‘setup.py install’ method, because it

    已解決DEPRECATION: phrasetree is being installed using the legacy ‘setup.py install’ method, because it

    已解決DEPRECATION: phrasetree is being installed using the legacy ‘setup.py install’ method, because it does not have a ‘pyproject.toml’ and the ‘wheel’ package is not installed. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the ‘–use-pep517’ option. Discussion can be found at https://github.com/pypa/pi

    2023年04月16日
    瀏覽(36)
  • 已解決 DEPRECATION: configobj is being installed using the legacy ‘setup.py install‘ method, because i

    已解決 DEPRECATION: configobj is being installed using the legacy ‘setup.py install‘ method, because i

    已解決(pip安裝fitz模塊報(bào)錯(cuò))DEPRECATION: configobj is being installed using the legacy ‘setup.py install’ method, because it does not have a ‘pyproject.toml’ and the ‘wheel’ package is not installed. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the ‘–use-pep517’ option. Discussion can be found

    2023年04月20日
    瀏覽(20)
  • 詳細(xì)步驟 | 打包制作自己的 Python 模塊包并上傳到 Pip 源 PyPI

    詳細(xì)步驟 | 打包制作自己的 Python 模塊包并上傳到 Pip 源 PyPI

    本文介紹如何打包一個(gè)簡單的 Python 項(xiàng)目,以及如何將其上傳到Python包索引平臺(tái)( PyPI ),供他人使用 pip install xxx 指令安裝。 文件目錄結(jié)構(gòu): 說明: packaging_tutorial 可以是任意的目錄名, pyproject.toml 是打包配置文件, src 里面存放的就是你的程序代碼, example_package_YOUR_USERNAM

    2024年03月24日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包