1

私はpythonが初めてで、ねじれたチュートリアルを実行しています。twistd を使用すると、次のエラーが表示されます。

sudo twistd -y /home/michael/Desktop/twisted_example.tac --syslog
[sudo] password for michael: 
Traceback (most recent call last):
  File "/usr/local/bin/twistd", line 4, in <module>
    import pkg_resources
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2707, in <module>
    working_set.require(__requires__)
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 686, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 584, in resolve
    raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: Twisted==12.0.0

他の投稿が示唆したように、いくつかのパッケージの依存関係と libxslt1-dev のインストールを解決しましたが、これで問題は解決しませんでした。

これがぎこちなくばかげた質問ではないことを心から願っていますが、私はpythonシステムをよく理解していないので、何か提案があれば感謝します

んん

4

2 に答える 2

1

と が/usr/local/bin/twistdあり/usr/lib/python2.7/ます。

これは、パッケージ化されていないTwisted がシステムにインストールされていることを示しています。これは、おそらく Twisted のパッケージ インストールと競合しています。

通常、パッケージ化されていないソフトウェアを Linux システムにインストールすることは避けてください。パッケージ化されていないソフトウェアをインストールする場合は、/usr/local(このようなソフトウェアが伝統的にインストールされる場所であるという事実にもかかわらず) のようなシステムの場所にインストールしないでください。代わりに、ホーム ディレクトリにインストールし、root としてインストールしないでください。

Linux ベンダーがソフトウェアをパッケージ化するのには理由があります。何千もの異なる人々が作成したソフトウェアからシステムを構築し、それを実際に動作させるのは困難です。パッケージ化プロセスにより、アップストリームの誰かがさまざまな構成をテストし、作業中の構成をコンピューターで正確に再現できる形式に凍結する機会が与えられます。

あなたのシステムで何がうまくいかなかったのかという詳細に関しては、私の推測では、setuptools (またはディストリビューション) がインストールされていて、root としてsetup.py. twistdこれにより、/usr/local/bin にsetuptools に感染したバージョンがインストールされました。このバージョンの はtwistd正確に Twisted 12.0.0 を要求します (これはtwistd独自の機能ではなく、setuptools が導入します) が、代わりに /usr/lib/python2.7/dist-packages にある Twisted のバージョンを検出し、失敗します。 .

質問のトレースバックには、システムがどのように設定されているかを実際に知るのに十分な情報が実際には含まれていないため、詳細は実際には少し異なる場合があります。

解決策は、/usr/local にインストールされているすべての Twisted 関連ファイルを削除し、代わりにシステム提供の Twisted パッケージを使用することです。そのバージョンが十分に新しくない場合は、Linux ディストリビューションをアップグレードするか、サードパーティ (例: https://launchpad.net/~twisted-dev/+archive/ Ubuntu の場合はppa )。

于 2012-12-31T17:16:28.690 に答える
0

python-pkg-resourcesパッケージをインストールする必要があります

于 2012-12-31T08:47:02.470 に答える