3

私はsetup.py自分のプロジェクトのためにファイルを書く技術を学んでいます。setuptoolsdistutilsよりも優れていると思われるについての話がたくさんあるようです。理解できないことが1つあります。これについて読んだチュートリアルでは、それが取り上げられていませんでした。setuptoolsがインストールされていない場合はどうなりますか?これは標準ライブラリの一部ではないことを理解していますが、プログラムをインストールしたい人がそれをインストールするとどのように想定できますか?

4

6 に答える 6

4

setuptoolsを使用してパッケージを配布する標準的な方法には、ez_setup.pysetuptools自体を自動的にダウンロードしてインストールするスクリプトが含まれています。Windowsでは、の実行可能ファイルが実際にインストールされると思いますeasy_install。これは、標準のsetuptools/easy_installディストリビューションから入手できます。

于 2009-11-03T10:49:20.240 に答える
2

Python用にインストールしたほとんどのライブラリでは、「setuptoolsをインストールする必要があります」という警告が表示されます。あなたもそれを行うことができると思います。ユーザーがインターネットでリンクを検索する必要がないように、リンクを追加することができます。

于 2009-11-03T10:49:10.417 に答える
2

私はsetuptoolsを使用して、WindowsEXEに書き込んだ多くのPythonスクリプトをコンパイルしました。ただし、(経験から)コンパイルされたEXEを実行しているコンピューターには、セットアップツールをインストールする必要がないことを常に理解しています。

お役に立てば幸い

于 2009-11-09T00:52:28.767 に答える
1

インストールされているとは限りません。それを回避する方法はいくつかあります。distutilsにフォールバックするか(しかし、そもそもなぜsetuptoolsがあるのか​​)、setup.pyにsetuptoolsをインストールすることができます(しかし、それは悪いことだと思います)。

setuptoolsは、必要な場合にのみ使用してください。

setuptoolsとdistrubuteに関しては、互換性があり、どちらを選択するかは主にユーザー次第です。setup.pyは同じです。

于 2009-11-03T12:00:52.987 に答える
0

ここからWindowsEXEインストーラーとLinuxRPMをダウンロードできます

http://pypi.python.org/pypi/setuptools

次に、setuptoolsを配置したら、easy_installコマンドを使用して新しいパッケージのダウンロードとインストールの両方を行うことができます。easy_installは依存関係も自動的にダウンロードしてインストールするため、実際に使用する前にvirtualenvを設定することをお勧めします。このようにして、システムのデフォルトのPythonインストールに多数のパッケージをインストールするかどうかを決定できます。

はい。これは、ユーザーがsetuptoolsを使用するには、setuptoolsをインストールする必要があることを意味します。もちろん、setuptoolsインストーラーを使用して名前を変更し、NSISのようにパッケージ化して、ユーザーに配布することもできます。実際には、何かをインストールする必要があるため、アプリケーションをインストーラーに入れたくない場合は、代わりにsetuptoolsをパッケージ化できます。

于 2009-11-03T10:38:12.997 に答える
0

どんな種類のユーザーに対応しているかによると思います。

彼らがPythonプログラマーではなく単なるユーザーである場合、または基本的なプログラマーである場合、setuptoolsを使用することは最初は少し多すぎるかもしれません。それらのためにdistutilsは完璧です。

クライアントにとって、私は間違いなくdistutilsに固執するでしょう。

より熱心なプログラマーにとっては、setuptoolsで十分でしょう。

どういうわけか、それはあなたがアップデートをどのように配布したいか、そしてどれくらいの頻度にも依存します。たとえば、ユーザーは、setuptoolsをブロックするような会社による厄介なプロキシ設定なしでインターネットにアクセスできますか?-私たちには1つあり、すべてのワークステーションで構成して機能させるための追加の手順です。

于 2009-11-03T10:51:20.007 に答える