繁体   English   中英

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

[英]Python: How to include the exe file of a script in setup.py

我正在尝试使用Zed A.Shaw的书“学习Python”这本书来学习Python。 运动46 我应该创建一个项目框架(即创建一个setup.py文件,创建模块等)。 然后做一个项目。

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

但是,当我尝试安装我的setup.py文件时(即通过在cmd中键入python setup.py install ),我无法安装此.exe文件而不能安装脚本script.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(也就是setuptools)的源代码, write_script命令将尝试encode('ascii')内容,如果它不是python脚本,并且如果您使用的是Python 3.您的cxfreeze exe是二进制文件,而不是文本文件,可能导致这种情况窒息。

setuptools在安装过程中包含可执行脚本的更简单方法是使用setup.pyentry_points选项而不是scripts

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

console_script将自动换行原始的helloscript.py脚本并创建一个exe (在Windows上)并将其安装到Python的Script目录中。 不需要使用像cxfreeze这样的cxfreeze

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM