將自己寫的Python程式碼打包放到PyPI上
如果是開源的Python程式碼,為了能夠讓大家更方便的使用,放到PyPI上也許是個非常不錯的主意(PyPI:Python Package Index)。剛開始我以為要將程式碼打包放到PyPI上是一件非常複雜繁瑣的事情,不過看過《Dive Into Python 3》的PACKAGING PYTHON LIBRARIES介紹(CHAPTER 16),並自己動手操作了一下,發現打包釋出這個事情並沒有想象中的那麼有難度。為了方便其他朋友閱讀的方便,就嘗試寫了這個博文,來記錄下如何將自己寫的Python程式碼打包上傳到PyPI上。
在Python的世界裡,有個叫Distutils的工具模組可以幫我們輕鬆的解決這個問題,既然這樣,讓我們開始打包之旅吧。
要打包程式碼,首先你的確保你的程式碼得是個包。比如,你寫了一些功能的程式碼塊,為了方便引用,你就需要將程式碼變成一個包,下次需要使用的時候,直接引用這個包裡面的某個具體功能就好了。在Python中,要將這些程式碼變成包非常容易,你的這些功能的合集,可以用一個你覺得合適的名稱來命名,建立這個命名的資料夾,並在資料夾下建立一個__init__.py
檔案,剩餘的就是將你這些程式碼放入到這個資料夾下面即可。整理成包的檔案結構大概像下面這樣:
somefunctions/ | +-- __init__.py | +-- myscripts1.py | +-- mysscripts2.py | +-- mymorescripts.py |
somefunctions
就是你包的名稱,下面my***.py
的各種檔案就是你原有的各種程式碼模組。是不是很簡單就將自己的程式碼變成了包?確實很簡單,你這步就是新建一個資料夾,把檔案全放進去而已——哦,還有添加個__init__.py
檔案(檔案內容可以為空).
到這裡,我們已經有Python包了,如果不傳到PyPI上的話,你都可以直接用了,最直接的方法是將這個資料夾拷到你的專案目錄下,然後在專案程式碼裡,你大概就能引用它了:
1 2 3 4 5 |
import
somefunctions
module =
somefunctions.myscripts1
###
這裡你就可以呼叫myscripts1裡面的功能了.
|
當然,我們的目標是打包到PyPI上,而不是將這個包拷來拷去的,後面安裝一下,引用起來將更加的方便。
好了,既然要放到PyPI上,那麼我們就需要在上面的基礎上,在加點料。首先,我們需要調整下檔案的目錄結構,把上面的改成下面這個樣子:
somefunctions/ | +-- somefunctions/ . | . +-- __init__.py . | . +-- myscripts1.py . | . +-- mysscripts2.py . | . +-- mymorescripts.py . | . |
就是將原來的目錄深移一層,資料夾名稱一樣即可。這步也不難吧。好吧,然後在到第一層的目錄下建立些特殊檔案,具體你可以看看下面這個檔案結構你就明白了:
somefunctions | +-- COPYING.txt | +-- README.txt | +-- setup.py | +-- somefunctions . | . +-- __init__.py . | . +-- myscripts1.py . | . +-- mysscripts2.py . | . +-- mymorescripts.py . | . | +-- docs/ |
哇,咋一看,變了好多啊,其實不多,解釋下:
TIPS:
- COPYING.txt 就是授權檔案,裡面是你關於這個包的授權,比如:MIT license,那麼你裡面放入MIT License全文即可,當然,如果你不清楚這個,你完全可以不要這個檔案。
- README.txt,這個檔案想必研發都應該清楚。如果有,儘量放些東西在這裡了,後面如果可能我們會用到它的。需要注意的是,Windows的回車和Linux不一樣,所以建議用Windows的好了。另外你也可以使用
README.rst
這類檔案表示(reStructuredText檔案,如果不清楚可以參看我前面幾篇文章:入門,Emacs快捷鍵) - setup.py,核心檔案,這裡面的內容馬上我們會講。
- docs/,這個資料夾你放你的documents吧,不過要用心寫文件真是個難事,所以這個資料夾基本是不存在的——為自己的懶惰可恥一把。
- 如果的包整個就一個檔案,那麼你也完全可以不用考慮再建一層目錄了,直接放到README檔案所在目錄下就可以了,雖然我不建議這麼操作。
好了,檔案都建好了,再來進化下,我們為setup.py
填上內容,讓我們的setup.py
真正的能用起來,注意哦,前面沒distutils什麼事情,他的作用在這裡哦。放出一個setup.py
的Demo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
相關推薦將自己寫的Python程式碼打包放到PyPI上如果是開源的Python程式碼,為了能夠讓大家更方便的使用,放到PyPI上也許是個非常不錯的主意(PyPI:Python Package Index)。剛開始我以為要將程式碼打包放到PyPI上是一件非常複雜繁瑣的事情,不過看過《Dive Into Python 3》的 實戰教程:如何將自己的Python包釋出到PyPI上# 1. PyPi的用途 Python中我們經常會用到第三方的包,預設情況下,用到的第三方工具包基本都是從Pypi.org裡面下載。 **我們舉個栗子:** 如果你希望用Python實現一個金融量化分析工具,目前比較好用的金融資料來源是 Yahoo 和 Google。 你可能需要讀取這 2 個平臺的 API 將自己的python程式打包成exe(秀同學一臉吶)Windows 10 x64 Python 2.7 IDE Pycharm 5.0.3 實際需求才是讓我學習的最大動力啊~~ 起因 今天實驗室同學看到我的乞丐版二輸入規則器,他挺感興趣的,也想要玩玩,但是他沒有裝python的環境,總不能讓他一直玩我電腦吧,所 將自己的python程式打包成.exe/.app(秀同學一臉吶)Windows 10 x64 macOS Sierra 10.12.4 Python 2.7 準備好裝嗶~了麼,來吧,做個真正意義上的綠色小軟體 Win下發布應用 起因 今天實驗室同學看到我的乞丐版二輸入規則器,他挺 如何將自己寫的程式碼上傳到github上接下來就是我上傳程式碼的步驟: ①首先註冊github賬號,登入,建立新倉庫 ,點選+,點選new repository 得到如下頁面,填寫倉庫名,自己隨便寫一個名字,下面的描述可寫可不寫,點選Initialize this repository python如何將自己寫的代碼打包供他人使用format 下載安裝 -- div odin 簡單 () license find 背景: 利用setuptools來實現,所以先安裝setuptools,其實Python2.7.9及之後的版本都自帶安裝setuptools了,無需在另外安裝 如果沒有安裝setuptoo Python:如何封裝打包自己寫的程式碼,被python import個人淺解。。。。有錯請指出 1.新建一個資料夾example,裡面放入要打包的.py檔案,以及必需的_init_.py. 程式碼如下: # -*- coding: utf-8 -*- """ Created on Thu Nov 1 17:04:02 2018 @author: Python將自己寫的模組進行打包將專案打包成模組的想法來自於flask文件教程,這不是在PyCon上和阿明合了照嘛,這不得多看看人家的東西。有興趣的可以看看文件的專案可安裝化部分,作者將flask專案打包成一個包,使其可以再任何地方匯入專案並允許,也可以通過pip install youproject.whl的方式來安裝專案並安裝相關的依 如何將自己寫的一段C++程式碼封裝成.so庫以供其他人呼叫1.通過自己寫的canbus函式程式碼,先生成一個libcanbus.so連結庫 canbus.cpp程式碼如下: 編譯指令如下: $ g++ -Wall -g -fPIC -c canbus.cpp -o canbus.o $ g++ - 將Python程式碼釋出到PyPi,使他人可用pip安裝專案的大致目錄結構,其中bword/bword.py 是你的程式碼檔案,__init__.py檔案宣告此目錄為一個模組,你可以完全不在裡面寫任何內容,也可以寫一些程式碼。如果你還不明白你可以參照:https://github.com/ZhangHang-z/bword 使用 Setup 將Python 程式碼 打包1. 我的原始碼結構如下: pack |---src | - common ---http ---user | - lib | - factory.py 2. 實現setup.py #!/usr/bin/env python3 # -*- coding: utf-8 -*- 小遊戲,對於剛剛學完python基礎的非常合適,下一個是自己寫的程式碼************************歡迎來到遊戲世界************************* 1.註冊 2.登入 3 cython寫的python包,帶so/帶ddl的包打包到pypi上,上傳由於python版本的混亂- - 打包上傳第三方包的教程也是坑的很 這裡踩坑一下 cython 的程式 編譯成so檔案 f 將自己寫的腳本添加至開機自啟動服務和chkconfig的原理添加開機自啟動服務 Linux運維將自己寫的腳本添加至開機自啟動服務和chkconfig的原理 創建腳本測試 [root@anuo ~]# vim anuo.sh --創建個腳本 # !/bin/bash # chkconfig: 35 53 88 --指定3和5級別啟動 53的啟動的順序 88 將自己寫的HDL代碼封裝成帶AXI總線的IPchang center 曾經 .cn 轉載 tool tps 事情 總線 將自己寫的HDL代碼封裝成帶AXI總線的IP 1.Tools->create and package IP 2.create AXI4總線的IP 3.新建block design 如何將自己寫的verilog模塊封裝成IP核目錄 第二篇 hierarchy 布局 options ssi campaign mac sed 如何將自己寫的verilog模塊封裝成IP核 (2014-11-21 14:53:29) 轉載▼ 標簽: 財經 分類: 我的東東 ======== Visual Studio Code 寫Python 程式碼最近在部落格園新聞裡面看到微軟釋出的Visual Studio Code 挺好用的,現在在學習Python,檢視官網釋出的VSCode 是支援Python程式碼,自己試著安裝用一下,下面是我的安裝以及配置Python的過程: 安裝VSCode 下載連結:https://visualstud Tensorflow 反捲積(DeConv)實現原理+ 手寫python程式碼實現反捲積(DeConv)1、反捲積原理 反捲積原理不太好用文字描述,這裡直接以一個簡單例子描述反捲積。 假設輸入如下: [[1,0,1], [0,2,1], [1,1,0]] 反捲積卷積核如下: [[ 1, 0, 1], [-1, 1, 0], [ 0,-1, 0]]   如何再window下統計自己寫的程式碼行git log --since="2018-05-01" --before="2018-11-5" --author="$(git config --get user.name)" --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 Python程式碼釋出到PyPiPython程式碼釋出到PyPi 參考部落格 提一個坑 參考部落格 參考部落格 提一個坑 問題描述:當我完成上傳後,確實可以pip,但是原始碼檔案site-packages中只有.dist,info資料夾,沒有原始檔。喵喵喵??? 解 |