16

正常に動作しているpython 2.7.5をインストールしました。

次に、scrapy をインストールします (内部で twisted を使用していると思います)。私のスクレイピースパイダーも元気に動いています。

ツイストをインストールしました:

sudo apt-get install python-twisted

次に、ここに示す Echo Server コードを使用してサンプル プログラムを作成しました。

ここにコードがあります

from twisted.internet import protocol, reactor


class Echo(protocol.Protocol):
    def dataReceived(self, data):
        self.transport.write(data)

class EchoFactory(protocol.Factory):
    def buildProtocol(self, addr):
        return Echo()

reactor.listenTCP(1234, EchoFactory())
reactor.run()

このコマンドを使用してこのコードを実行しようとしました:

$ python twistedTester.py 
Traceback (most recent call last):
  File "twistedTester.py", line 1, in <module>
    from twisted.internet import protocol, reactor
ImportError: No module named twisted.internet

私のねじれたパッケージがPythonのインストールで取得されない理由をデバッグする方法を教えてもらえますか?

4

7 に答える 7

9

このエラーが発生する理由がわかりました。何らかの理由で、 を使用apt-getして python パッケージをインストールすると、正しくインストールされませんでした。

そのため、tar ボールをダウンロードして、そこからパッケージをインストールする必要がありました。

ここから Twisted tar をダウンロードしました。

私はやったtar xjf Twisted-13.1.0.tar.bz2- これはTwisted-13.1.0というディレクトリを作成した

次に、cd Twisted-13.1.0 最後に、python setup.py install

これは私にエラーを与えました。Twisted には、zope.interface という別のパッケージが必要でした。というわけで、zope.interface の tar ball を here からダウンロードしました。次に、このコマンドを実行して、zope.interface-3.6.1tar xzf zope.interface-3.6.1.tar.gz というフォルダーを作成しました。したがって、zope.interface-3.6.1 に cd して実行します。python setup.py install

注: ユーザーの権限によっては、これらのコマンドを sudo モードで実行したい場合があります。すべてのコマンドの前にキーワード sudo を追加するだけです。

于 2013-07-04T22:34:19.727 に答える
7

ファイルtwisted.pyの名前を別の名前に変更してください。ファイルから関数をインポートするたびに、インタープリターは現在の場所でファイルを検索し、次にライブラリを検索します。したがって、「 twisted.py 」という名前のファイルがある場合は、おそらく名前を変更する必要があります。

改名後。再度実行する前にtwisted.pycファイルを必ず削除してください。

于 2016-06-14T15:30:51.463 に答える
0

apt-get install python-twistedあなたが言ったように、なぜ十分ではないのか、「正しくインストールする」のかを理解しました、user1700184。

Debian Wheezy と Python 2.7 を使用しています。

「twisted」という名前のフォルダーを移動する必要がありまし/usr/lib/python2.7/dist-packages//usr/lib/python2.7/

パッケージ「zope」と、インストールしたものの、コードを実行しようとしたときに取得されなかった他のパッケージについても、同じことを行う必要があります。

ただし、なぜこれが私の場合でも必要なのかは、 my にはとのsys.path両方が含まれているため、まだ謎です。/usr/lib/python2.7//usr/lib/python2.7/dist-packagesdist-packages

于 2014-08-05T13:11:04.090 に答える