6

ピラミッドをインストールしてプロジェクトを正常に作成しましたが、setup.py 要件に新しいパッケージを追加しようとすると、常に pkg_resources.DistributionNotFound エラーが発生します。

パッケージがインストールされます。これは、../bin/python3.3 setup.py develop を実行した後に新しいパッケージをインストールしようとした場合にのみ発生します。それがどのパッケージであるかは問題ではありません。

私が解決した唯一の方法 (実際にはそうではありません) は、プロジェクトを作成して setup.py development を実行する前に、新しい仮想環境をセットアップしてパッケージをインストールすることです。

明らかに私は何か間違ったことをしています。パッケージをpipインストールする以外に何かする必要がありますか? これはある種のパスの問題ですか?私はこれが初めてなので、あなたの助けはとてもありがたいです!

*誰かが何か問題を見つけた場合に備えて、私のインストール プロセスを追加します。 私のwsgiファイルも含まれています。

仮想環境を作成しました easy_install-3.3 env

virtualenv を有効にしました source env/bin/activate

インストールされたピラミッド cd env ./bin/easy_install-3.3 pyramid

プロジェクトを作成しました ./bin/pcreate -s starter myprojectname

setup.py を実行しました cd myprojectname ../bin/python3.3 setup.py develop

この時点で、次のエラーが表示されます: pkg_resources.DistributionNotFound: waitress

インストールされたウェイトレス ../bin/easy_install-3.3 waitress

setup.py を再度実行しました (これを実行する必要があるかどうかはわかりません)。 ../bin/python3.3 setup.py develop

それでもエラーが表示される

私の .wsgi ファイルには次のものが含まれています(これがこの質問にとって重要かどうかは不明です): activate_this = "/home/account/env/bin/activate_this.py" execfile(activate_this,dict(__file__=activate_this))

import os import sys

path = '/home/account/env/lib/python3.3/site-packages'

if path not in sys.path: sys.path.append(path)

from pyramid.paster import get_app application = get_app('/home/account/env/myprojectname/production.ini', 'main')

4

2 に答える 2

5

上記のマイケルの提案を使用して、私は彼の問題を解決することができました. パッケージを手動でインストールする必要さえありませんでした。setup.py ファイル (ピラミッド プロジェクトを作成するときに作成される) に要件を追加し、 pip install -e を実行すると、すべてが機能していました。繰り返しますが、すべてが完全にインストールされました。問題は、私が物事をどのようにインストールしていたかによって引き起こされました。他の初心者がピラミッドするのに役立つ場合の私の最終プロセスは次のとおりです。

  1. 仮想環境を作成しました virtualenv-3.3 env

  2. 環境をアクティブにしました source env/bin/activate

  3. 環境ディレクトリに移動 cd env

  4. インストールされたピラミッド pip install pyramid

  5. プロジェクトを作成しました ./bin/pcreate -s starter myprojectname

  6. 私のプロジェクトディレクトリに移動しました cd megaproject

  7. インストールを実行しました pip install -e .

  8. 環境とプロジェクトの設定で wsgi ファイルを更新しました

  9. アプリをリロードして、素敵なピラミッドのスターター ページを見て喜びに飛びついた

于 2013-06-21T17:38:08.977 に答える
3

ピップとsetup.py develop混ぜてはいけません。後者は、名前空間パッケージの場合に pip と互換性のない easy_install を使用します (これらは、完全な zope.* パッケージの .sqlalchemy 部分のみをインストールする zope.sqlalchemy など、別の親のサブパッケージとしてインストールされるパッケージです)。名前空間パッケージ、pip と easy_install の間で問題を引き起こします。一方、他のほとんどのパッケージは、どのシステムを選択しても問題なく動作しますが、一貫性を保つ方がよいでしょう。

再確認するもう 1 つのことは、実際にパッケージを virtualenv にインストールしていることです。virtualenv で python cli を開き、パッケージをインポートできるはずです。できない場合は、おそらくインストールされていません。

于 2013-06-20T18:46:48.023 に答える