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 使用窗口,无控制台