1

Zed A.Shaw の著書 Learn Python the hard way を使用して、自分で Python を学ぼうとしています。演習 46で。プロジェクトのスケルトンを作成することになっています (つまり、setup.py ファイルの作成、モジュールの作成など)。次に、プロジェクトを作成します。

システムで実行可能なスクリプトを bin ディレクトリに配置する必要があります。cxfreezeHello World!を使用して .exe ファイルに変換する簡単なスクリプトを作成しました。

ただし、setup.py ファイルをインストールしようとすると (つまりpython setup.py install、cmd を入力して)、この .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 を配置しようとしましたが、同様のエラーが発生します。

私の OS は Windows 7 で、Python 3.1 を使用しています。

繰り返しますが、setup.py がスクリプトだけでなく、.exe ファイルもインストールするようにしたいのです。

4

1 に答える 1

4

scriptこのオプションは、テキストファイル以外を処理するためのものではないと思います。配布用のソース コード(別名 setuptools)を見ている場合、write_scriptコマンドはencode('ascii')、それが python スクリプト以外であり、かつ Python 3 を使用している場合にコンテンツを試行しますcxfreeze。exe はバイナリ ファイルであり、テキスト ファイルではありません。 、これが窒息の原因となっている可能性があります。

setuptoolsインストール プロセスに実行可能スクリプトを含めるためのより簡単なオプションは、次のentry_pointsオプションではsetup.pyなくscripts

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

は、元のスクリプトconsole_scriptを自動的にラップして(Windows の場合) を作成し、Python のディレクトリにインストールします。のようなものを使用する必要はありません。helloscript.pyexeScriptcxfreeze

于 2012-07-23T04:45:43.167 に答える