相关疑难解决方法(0)

py2exe - 生成单个可执行文件

我以为我听说py2exe能够做到这一点,但我从未弄明白.有没有人成功完成这个?我可以看到你的setup.py文件,以及你使用的命令行选项吗?

基本上我正在考虑给它一个可执行文件,它可以像解压缩/ temp和运行一样.

python packaging py2exe

138
推荐指数
4
解决办法
15万
查看次数

如何创建一个python 2.x包 - 简单的情况

请展示为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)

我要的是:

  • 目录和文件布局
  • 文件的内容
  • 用于创建可分发包文件的命令
  • 命令从distributable包文件安装包(最好使用pip)

我找到了几个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)

python packaging python-2.x

19
推荐指数
1
解决办法
6544
查看次数

标签 统计

packaging ×2

python ×2

py2exe ×1

python-2.x ×1