我以为我听说py2exe能够做到这一点,但我从未弄明白.有没有人成功完成这个?我可以看到你的setup.py文件,以及你使用的命令行选项吗?
基本上我正在考虑给它一个可执行文件,它可以像解压缩/ temp和运行一样.
请展示为python 2.x创建python包的简单和最新标准方法
我希望稍后使用pip来安装软件包.
包应该包含一个类:
class hello:
def greet(self):
print "hello"
Run Code Online (Sandbox Code Playgroud)
之后应该可以执行以下操作:
pip install my_package-0.1.1....
Run Code Online (Sandbox Code Playgroud)
然后使用它:
from my_package import hello
h = hello.hello()
h.greet()
Run Code Online (Sandbox Code Playgroud)
我要的是:
我找到了几个howtos,但我仍然不确定这个非常简单和剥离的情况(没有嵌套包,删除所有文件和功能,可以在最简单的情况下省略)将如何处理,这是现代的这样做的方式.
我希望这个问题进入社区维基状态,所以你不会得到任何积分,我会给出足够的时间,并在几天之后标记答案,同时考虑投票和评论.
编辑:
我有一个我要分享的第一个运行示例,我使用了Marius Gedminas的答案.它不包含应该存在的所有内容,但它有效,因此它可以展示技术过程的核心.要添加更多必要部件,请阅读下面的Marius的答案.
目录结构:
MyProject/
setup.py
my_package.py
README.txt
MANIFEST.in
Run Code Online (Sandbox Code Playgroud)
setup.py:
from setuptools.import setup
setup(name='MyProject',
version='0.1',
py_modules=['my_package'])
Run Code Online (Sandbox Code Playgroud)
my_package.py:
class hello:
def greet(self):
print "hello"
Run Code Online (Sandbox Code Playgroud)
MANIFEST.in:
include *.txt
Run Code Online (Sandbox Code Playgroud)
要从此文件夹创建包,请进入MyProject文件夹并运行:
$ python setup.py sdist
Run Code Online (Sandbox Code Playgroud)
这将MyProject-0.1.tar.gz在子文件夹中创建一个文件dist/.将此文件复制到目标计算机上的文件夹中.
在目标计算机上运行此命令,该文件夹包含MyProject-0.1.tar.gz:
sudo pip install MyProject-0.1.tar.gz
Run Code Online (Sandbox Code Playgroud)
现在可能需要在目标计算机上注销并重新登录,因此将找到该程序包.之后,您可以使用python shell在目标机器上测试包:
$ python
>>> import my_package …Run Code Online (Sandbox Code Playgroud)