問題タブ [setuptools]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
14576 参照

python-3.x - python3.0 の setuptools

python3.0用の「setuptool」パッケージをインストールしようとしていました。しかし、残念ながら、インストールしようとすると、モジュール名「dist」が欠落していると表示されます。この問題を解決するのを手伝ってください。


2013 年 3 月現在の編集:

@LennartRegebroによる最新の応答については、受け入れられた回答の下をご覧ください

0 投票する
1 に答える
4973 参照

python - setuptools は sdist/bdist 用に保持するファイルをどのように決定しますか?

私はsetup.pynamespace_packagesでなどを使用するPythonパッケージに取り組んでいます:find_packages()

アップストリーム コンポーネントのバンドルであるため、ソース管理には含まれていません。マニフェストはありません。

実行するpython setup.py sdistと、ディレクトリの下にあるほとんどのファイルの tarball が取得されますが、ファイルをpackage/含まないディレクトリ.pyは除外されます。

setup.pyビルドされたディストリビューションに含めるものと除外するもののデフォルトのルールは何ですか? MANIFEST.inwith を追加して問題を解決しました

setuptools と distutils がデフォルトで何をしているのかを理解したいと思います。

0 投票する
5 に答える
6839 参照

python - Pythonスクリプト内でeasy_installを使用していますか?

easy_install python拡張機能を使用すると、次のようにコンソールからpythoneggをインストールできます。

しかし、Pythonスクリプト内でeasy_install機能にアクセスすることは可能ですか?つまり、os.system( "easy_install py2app")を呼び出さずに、代わりにeasy_installをPythonモジュールとしてインポートし、そのネイティブメソッドを使用しますか?

0 投票する
2 に答える
16716 参照

python - Python を使用して Windows XP のシステム プロキシ設定をプログラムで検出する

多国籍企業が使用する重要なアプリケーションを開発しています。世界中のオフィスのユーザーがこのアプリケーションをインストールできる必要があります。

このアプリケーションは実際には Excel のプラグインであり、Setuptools の easy_install に基づく自動インストーラーがあり、ユーザーが Excel に切り替えるたびにプロジェクトのすべての依存関係が自動的にインストールまたは更新されます。ユーザーは、完全にバックグラウンドで行われるすべてのインストールを意識することはめったにないため、すべてが非常にエレガントに機能します。

残念ながら、私たちはすべて異なるプロキシ設定を持つ新しいオフィスを拡大して開設しています。これらの設定は日々変化しているように見えるため、私たちに知らせずに変更を行う外注のセキュリティ担当者についていくことができません。ひどいですが、それを回避する必要があります。

ユーザーが実行している Windows ワークステーションで、システム全体のプロキシ設定をプログラムで検出したいと考えています。

組織内の全員が Windows XP と Internet Explorer を実行しています。世界中のどこにいても、誰もが問題なく IE から私たちのものをダウンロードできることを確認しました。

したがって、IE が使用しているプロキシ設定を検出し、Setuptools にそれらの設定を使用させるだけです。理論的には、この情報はすべてレジストリにあるはずですが、人々が IE をアップグレードしても変更されないことが保証されている、それを見つけるためのより良い方法はありますか? たとえば、プロキシ設定を検出するために使用できる Windows API 呼び出しはありますか?

要約すれば:

  • Windows XP で Python 2.4.4 を使用します。
  • Internet Explorer のプロキシ設定 (ホスト、ポート、プロキシ タイプなど) を検出する必要があります。
  • この情報を使用して、easy_install を動的に再構成し、プロキシ経由で Egg ファイルをダウンロードできるようにします。

UPDATE0:

重要な詳細を 1 つ忘れていました。各サイトには、自動構成の「pac」ファイルがあります。

Windows\CurrentVersion\InternetSettings\AutoConfigURL には、javascript ファイルのように見えるものを含むローカル サーバー上の HTTP ドキュメントを指すキーがあります。

pac スクリプトは基本的に、URL を正規表現と比較し、最終的に選択したプロキシ サーバーのホスト名を返す一連のネストされた if ステートメントです。スクリプトは、FindProxyForURL(url, host) と呼ばれる単一の JavaScript 関数です。

したがって、課題は、特定のサーバーで使用するプロキシを見つけることです。これを行う唯一の 100% 保証された方法は、pac ファイルを検索し、Python から Javascript 関数を呼び出すことです。

助言がありますか?これを行うよりエレガントな方法はありますか?

0 投票する
6 に答える
3615 参照

python - setuptools が Subversion インベントリを無視するようにするにはどうすればよいですか?

setuptools を使用する setup.py で Python パッケージをパッケージ化する場合:

によって作成されたソース配布:

通常どおり、MANIFEST.in で指定されたファイルを含めるだけでなく、Subversion がパッケージ ディレクトリの下でバージョン管理されているものとしてリストするすべてのファイルも無償で含めます。これは非常に迷惑です。パッケージと共に配布されるファイルを明示的に制御することが困難になるだけでなく、「svn チェックアウト」ではなく「svn エクスポート」に従ってパッケージをビルドすると、 .svn メタデータがない場合、setuptools は何を含めるかについて異なる選択を行うため、パッケージはまったく異なる可能性があります。

私の質問: Subversion を使用している場合でも、聞いたことのないバージョン管理を使用している場合でも、「svn export」で作成された裸のツリーを使用している場合でも、「setuptools」がプロジェクトを同じように扱うように、このひどい動作をオフにするにはどうすればよいですか?プロジェクトの最後に作成して、作業ディレクトリ以外の場所にきれいにビルドされるようにしましたか?

私がこれまでに管理した中で最高のものは、醜いモンキー パッチです。

しかし、これはジャングルではなく Python であるため、もちろん、サルがまったく関与しない、より優れたソリューションが必要です。どうすれば setuptools を飼いならし、その魔法をオフにして、代わりに MANIFEST.py の目に見える予測可能なルールを見て、賢明に動作させることができますか?

0 投票する
1 に答える
1177 参照

python - easy_install を単一の卵ファイルではなくディレクトリに展開するにはどうすればよいですか?

誰かが easy_install を実行すると、パッケージが卵の中に残るのではなく、ディレクトリとして \site-packages\ に展開されるように、setup.py ファイルを正確に構成するにはどうすればよいですか。

私が遭遇している問題は、私が作成した django アプリの 1 つが、卵の中にある場合に自動検出されないことです。

編集:たとえば、入力すると、ディレクトリがサイトパッケージにeasy_install photologueインストールされます。\photologue\これは私が望む動作ですが、それを実現するには、パッケージ化されているディレクトリ内に少なくとも 1 つのディレクトリ/モジュールが必要なようです。

0 投票する
1 に答える
2218 参照

python - python distutils / setuptools: モジュールを除外する方法、または svn:ignore フラグを尊重する方法

複数のパッケージを含む 'myproject' という python プロジェクトがあります。これらのパッケージの 1 つである「myproject.settings」には、「svn:ignore」プロパティによってバージョン管理から除外されるモジュール「myproject.settings.local」が含まれています。

bdist または bdist_egg ターゲットを作成するときに setuptools がこのファイルを無視するようにします。

私は無駄に find_packages(exclude ..) を試しました。理想的には、svn によって無視されないファイルのみが含まれることを望んでいました。

モジュールを除外する方法はありますか? (私はパッチを適用した ( http://bugs.python.org/setuptools/issue64 ) バージョンの setuptools トランクを、サブバージョン 1.6 で使用しています。)

あなたが持っているかもしれない洞察に感謝します

-フランク

0 投票する
3 に答える
2306 参照

python - setup.pyでUnicodeメタデータを使用する正しい方法は何ですか?

setuptoolsを使用してPythonパッケージのsetup.pyを作成していて、long_descriptionフィールドに非ASCII文字を含めたいと考えていました。

残念ながら、unicodeオブジェクトをsetup()に渡すと、UnicodeEncodeErrorで次の2つのコマンドのいずれかが壊れます。

long_descriptionフィールドに生のUTF-8文字列を使用すると、次のコマンドがUnicodeDecodeErrorで中断します。

私は通常、「python setup.py sdist register upload」を実行してソフトウェアをリリースします。これは、sys.argvを調べて、適切なオブジェクトタイプを渡す醜いハックがすぐに実行されることを意味します。

結局、私はあきらめて、別の醜いハックを実装しました:

もっと良い方法はありませんか?

0 投票する
1 に答える
1171 参照

python - インストールされている Debian パッケージを SetupTools/easy_install に認識させますか?

easy_installが必要な卵をインストールしていますruledispatch。PyPI では利用できず、PEAK のバージョンを使用するとFTBFSになります。ただし、python-dispatchruledispatch と同じ機能を提供するパッケージがあります。easy_installruledispatch のインストールをやめさせ、ruledispatch が既に python-ruledispatch としてインストールされていることを認識させるにはどうすればよいですか?

Python 2.4 で Debian etch を実行する

0 投票する
5 に答える
8954 参照

python - Ubuntu + virtualenv = 混乱?virtualenv は dist-packages を嫌い、site-packages を望んでいます

誰かがubuntu 9.04でpythonで何が起こっているのか説明してもらえますか?

スピンアップしようとしていますがvirtualenv--no-site-packagesフラグはubuntuでは何もしていないようです。私は(にアップグレードしました)でインストールvirtualenv 1.3.3しましたが、すべてがにインストールされているようですeasy_installsetuptools 0.6c9/usr/local/lib/python2.6/dist-packages

apt -get を使用してパッケージをインストールすると、 ? に配置されると思い/usr/lib/python2.6/dist-packages/ます。

問題は、/usr/local/lib/python2.6/site-packagesただそこに座っているだけの空もあることです。これは、virtualenv がバックアップとして使用するフォルダーでpathあると思われます (の を参照)。virtualenvしたがって、省略したと思っても--no-site-packages、どの virtualenv からもローカル システム パッケージにアクセスできません。

だから私の質問は:

  1. virtualenvのいずれかを指すにはどうすればよいdist-packagesですか?
  2. どのdist-packagesを指す必要がありますか? /usr/lib/python2.6/dist-packagesまた/usr/local/lib/python2.6/dist-packages/
  3. のポイントは/usr/lib/python2.6/site-packages何ですか?そこには何もありません!
  4. パスは先着順ですか?パッケージ XYZ の新しいバージョンが にインストールされていて/usr/local/lib/python2.6/dist-packages/、(ubuntu repos/apt-get から) に古いバージョンがインストールされている場合、次の/usr/lib/python2.6/dist-packagesときにどちらがインポートされimport xyzますか? これはパスリストに基づいていると思いますよね?
  5. 一体、なぜこれほど紛らわしいのでしょうか?私がここに欠けているものはありますか?
  6. easy_installインストール先はどこに定義されてい/usr/local/lib/python2.6/dist-packagesますか?
  7. これも影響pipしますか?

これをクリアできる人に感謝します!