gpt4 book ai didi

Python:如何在 setup.py 中包含脚本的 exe 文件

转载 作者:太空宇宙 更新时间:2023-11-04 10:53:47 24 4
gpt4 key购买 nike

我正在尝试使用 Zed A.Shaw 的书 Learn Python the hard way 自学 Python。在 exercise 46 .我应该创建一个项目框架(即创建一个 setup.py 文件、创建模块等)。然后做一个项目。

我必须在我的 bin 目录中放置一个可以为我的系统运行的脚本。我编写了简单的 Hello World! 脚本,使用 cxfreeze 将其转换为 .exe 文件。

但是,当我尝试安装我的 setup.py 文件时(即通过在 cmd 中键入 python setup.py install),我无法安装此 .exe 文件,我只能安装脚本脚本.py我怎样才能安装这个exe文件。这是我的 setup.py 文件:

try:
from setuptools import setup
except ImportError:
from distutils.core import setup

config = {
'description': 'First project',#ex46
'author': 'author',#
'url': '',#N/A
'download_url': '',#N/A
"author_email": "author_email@email.com"
'versio': '3.1',
'install_requires': ['nose'],
'packages': ['skeleton\quiz46','skeleton\\tests'],
'scripts': ['skeleton\\bin\helloscript.py','skeleton\\bin\helloscript.exe'],
'name': 'quiz46'
}

但这给了我以下错误:

UnicodeDecodeError

我也试过放置 skeleton\bin\helloscript.exe 但这给了我一个类似的错误!

我的操作系统是 Windows 7,我使用的是 Python 3.1。

同样,我想要的是让 setup.py 安装我的 .exe 文件,而不仅仅是它的脚本。

最佳答案

我不认为 script 选项旨在处理文本文件以外的任何内容。如果您查看 distribute (aka setuptools) 的源代码,write_script 命令将尝试encode('ascii') 内容,如果它不是 python 脚本,并且如果您使用的是 Python 3。您的 cxfreeze exe 是一个二进制文件,而不是一个文本文件,很可能导致它阻塞。

setuptools 在安装过程中包含可执行脚本的更简单的选择是使用 setup.py 中的 entry_points 选项而不是脚本:

entry_points={'console_scripts':['helloscript = helloscript:main'] }

console_script 将自动包装您的原始 helloscript.py 脚本并创建一个 exe(在 Windows 上)并将其安装到您的 Python 的 脚本目录。无需使用类似 cxfreeze 的东西。

关于Python:如何在 setup.py 中包含脚本的 exe 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11605096/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com