1. 如何將自己的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",
],
)
文中的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包了
2. 求問怎麼把一個python程序打包成apk
1.概述
Kivy是一套Python下的跨平台開源應用開發框架,官網,我們可以用
它來將Python程序打包為安卓的apk安裝文件。以下是在windows環境中使用。
安裝和配置的過程中會下載很多東西,確保你能夠穩定地訪問外網,另外推薦一個視頻教程:Youtube
2. 步驟
第一當然是安裝了Python,我的版本是Python 2.7.13,然後就是安裝Kivy包:
官網有詳細的Kivy包的安裝步驟,按照該步驟走完就安裝ok。
然後就是寫一個簡單的程序main.py測試一下:
import kivy
kivy.require('1.9.1')
from kivy.app import App
from kivy.uix.button import Button
class test(App):
def build(self):
return Button(text='hello world')
if __name__ == '__main__':
test().run()
運行截圖:
運行成功,那開發環境基本沒問題了。然後下面就是怎麼將這個程序打包成apk。
首先需要安裝虛擬機 VirtualBox,這個沒問題,很快就裝好了,然後Kivy官方製作了該虛擬機的映像(很體貼),下載後就直接能運行了,省去不少麻煩。下載地址,或者直接去官網下載:
下載並解壓之後,打開VB並載入該文件夾下的虛擬機文件,然後運行(登錄密碼kivy):
進入到該系統中之後,就需要開始配置環境。官方指導
首先我們先在該系統中添加一個共享文件夾,這樣可以和windows共享文件,在VB的設備->共享文件夾選項中有配置:
然後我們使用固定分配,在windows下某個路徑新建一個文件夾後將其選擇為共享文件夾,並選擇自動掛載:
然後重新啟動虛擬機就可以訪問該共享文件夾了:
設置好了共享文件夾後,可以將之前寫的測試程序main.py拷貝到該文件夾,然後在虛擬機中拷貝到桌面備用。
然後打開終端(cd到桌面),執行buildozer init命令,之後會在桌面上生成buildozer.spec的配置文件:
然後使用命令gedit buildozer.spec來編輯該文件,(如果沒有gedit可以sudo apt-get install gedit來安裝)
基本不用改什麼,那個source.dir 需要注意,這是剛剛我們放在桌面上的main.py的路徑。
然後運行buildozer android_new debug,接著就開始下載很多東西了,例如Android SDK,Android NDK之類,並且是需要訪問外網的,自搭梯子。這個過程要很久,讓我一度以為出了問題,然後我中午睡一覺起來就差不多了^^。
然後在它自動下載配置之後就會在桌面的bin文件夾下面生成了apk文件,可以安裝在手機上試一下。
然後基本流程大概如此^^,詳細可以去官網了解,我就是按照官網的步驟完成的。
3. python怎麼打包整個項目
distutils - Python自帶的基本安裝工具, 適用於非常簡單的應用場景使用, 不支持依賴包的安裝
通過distutils來打包,生成安裝包,安裝python包等工作,需要編寫名為setup.py python腳本文件。
setuptools - 針對 distutils 做了大量擴展, 尤其是加入了包依賴機制。不支持python3,安裝完setuptools後會有easy_install
distribute - 類似於setuptools,支持python3,安裝完distribute後會有easy_install。
easy_install - setuptools 和 distribute 自帶的安裝腳本, 也就是一旦setuptools或distribute安裝完畢, easy_install 也便可用了。
pip - 目標是取代easy_install。easy_install 有很多不足: 安裝事務是非原子操作, 只支持 svn, 沒有提供卸載命令, 安裝一系列包時需要寫
腳本; pip 解決了以上問題, 已儼然成為新的事實標准, virtualenv 與它已經成為一對好搭檔;
distutils2 - setuptools 和 distribute 的誕生是因為 distutils 的不濟, 進而導致目前分化的狀況。它將成為 Python 3.3 的標准庫
packaging , 並在其它版本中以distutils2 的身份出現; 換句話說, 它和 pip 將聯手結束目前混亂的狀況。
virtualenv - 用來創建隔離的python環境,處理python環境的多版本和模塊依賴。
常識
sudo apt-get install 安裝的package存放在 /usr/lib/python2.7/dist-packages目錄中
pip 或者 easy_install安裝的package存放在/usr/local/lib/python2.7/dist-packages目錄中
手動從源代碼安裝的package存放在site-packages目錄中。
更多學習內容,請點擊Python學習網!
4. 如何將一整個python工程打包
打包成可執行文件的話,py2exe是不行的,看名字就知道,那是打包python2的,它不支持python3,用pyinstaller可以打包python3,教程也很簡單,搜下一行命令就能打包了。
5. 如何把python文件打包成可執行文件
我也遇到了這個問題,我是這樣解決的。
你用python調用.bat或者.exe文件時,一般調用 方式如下:
os.system(被調用程序)
對吧,這樣就會因為調用了系統shell而出現黑框。
我的解決方法是:
os.popen(被調用程序)
這樣就把程序作為後台調用了,而且能根據popen的返回結果來獲得程序的返回值。
6. mac 怎麼打包python程序
編寫的程序必須要有GUI(圖形用戶界面),否則程序是不會有顯示的。
具體流程
1. 下載py2app
在此推薦使用Pycharm,下載第三方庫時很方便。具體為File > Default Settings > Prroject Interpreter > 「+」 搜索所需的包即可。若使用其他IDE,可通過終端輸入
pip install py2app
或
easy_install py2app
註:pip的安裝路徑要和interpreter的路徑保持一致,此處可能出現版本不一致的情況
2. 創建setup.py文件
cd /Users/apple/Desktop/function
py2applet --make-setup function.py
在此後,會顯示
Wrote setup.py
但如顯示
-bash: py2applet: command not found
說明未找到py2app中py2applet的位置,需手動輸入,執行以下命令(重新進入終端,否則路徑還在工作區)
sudo find / -name "py2applet" -type f
一般會搜索一段時間,在本人機器上地址為
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/bin/py2applet
這樣的話,最初的命令變為
cd "工程路徑"
"py2applet地址" --make-setup "python文件名"
不出意外的話,會顯示
Wrote setup.py
說明setup文件已建立,其中具體內容會在以後提到。
3. 發布應用
接上一步,輸入
rm -rf build dist
python setup.py py2app
一個簡單的小程序就完成了,」.app」文件會在工程文件目錄下的dist文件夾中。
下為demo中命令行中所有命令
Apples-MacBook-Pro:~ apple$ cd /Users/apple/Desktop/helloworld
Apples-MacBook-Pro:helloworld apple$ /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/bin/py2applet --make-setup helloworld.py
Wrote setup.py
Apples-MacBook-Pro:helloworld apple$ rm -rf build dist
Apples-MacBook-Pro:helloworld apple$ python setup.py py2app
running py2app
.........
.........
Done!
Apples-MacBook-Pro:helloworld apple$
到此為止,已完成小程序的發布。
4. 代碼及結果
import Tkinter as tk
root = tk.Tk()
root.title("hello")
tk.Button(root, text="Helloworld!").pack()
tk.mainloop()
7. 如何打包python文件
最近寫了一個小小的程序,需要進行封裝exe,為了簡單,就直接用了pyinstaller這個模塊,對於python3.6版本的童鞋來說,簡直方便的不要。下面就給大家介紹一下如何用pyinstaller去封裝程序為exe程序。
首先,需要安裝一下pip這個應用,這個已經在前面的文章中說過了,windows和linux都有請借鑒windows和linux。
第二步,安裝好pip之後,在cmd命令窗口中輸入pip install pyinstaller即能安裝上pyinstaller,那麼接下來要介紹一下關於pyinstaller幾個指令了:
-w指令
直接發布的exe應用帶命令行調試窗口,在指令內加入-w命令可以屏蔽;
-F指令
注意指令區分大小寫。這里是大寫。使用-F指令可以把應用打包成一個獨立的exe文件,否則是一個帶各種dll和依賴文件的文件夾;
-p指令
這個指令後面可以增加pyinstaller搜索模塊的路徑。因為應用打包涉及的模塊很多。這里可以自己添加路徑。不過經過筆者測試,site-packages目錄下都是可以被識別的,不需要再手動添加。
那麼通常是使用-F指令,使用的語法是:pyinstaller -F (python程序名稱).py
8. 如何將一個python工程打包成一個庫
安裝完pyinstaller之後就可以開始了。
1.使用pyinstaller生成可執行文件的方法
1.1 將依賴文件集中到一個文件夾:
pyinstaller -D -w main.py #把main.py替換成你的主入口python文件即可。
-w參數代表main.py是一個窗體程序。
1.2 將所有依賴文件都打包到同一個可執行文件中:
pyinstaller -F -w main.py
2.調查pyinstaller生成程序的載入過程
使用如下命令,可以得到運行時的跟蹤,tracing ,loader 的載入過程。
pyinstaller -Fwd aui.py #把aui.py 換成你需要偵測的文件即可。
9. 怎麼把python程序打包成apk,誰能教我謝謝!
需要使用linux環境的,其他的系統環境無法滿足的.一般我們平時常用的微軟視窗系統不適合做安卓開發的.
有了合適的操作系統安裝好python後可以用python-for-android來安裝apk的打包需要的所有模塊
網頁鏈接
10. 如何打包Python腳本使用的Python庫
使用pyinstaller吧
1、下載pyinstaller
目前pyinstaller支持的python版本為2.3-2.7,可以到官網下載。
2、安裝
下載完成後,解壓即可。
3、pyinstaller使用方法
使用也非常的簡單,cmd下進入解壓出來的目錄,執行如下命令。
python pyinstaller.py [opts] yourprogram.py
主要選項包括:
-F, –onefile 打包成一個exe文件。
-D, –onedir 創建一個目錄,包含exe文件,但會依賴很多文件(默認選項)。
-c, –console, –nowindowed 使用控制台,無界面(默認)
-w, –windowed, –noconsole 使用窗口,無控制台