[英]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.py
的entry_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.