1

ここ数日、Think Python を使ってプログラミングを学んでいます。今日、私は第 4 章に入り、Swampy の必要性について話し始めました。これは、この章でインターフェース設計を教えるために使用されるパッケージ (正しい用語ですか?) です。

だから、私の問題に取り掛かると、入力するように言われた最初のコードは

from swampy.TurtleWorld import * 
world = TurtleWorld()
bob = Turtle()
wait_for_user()

実行すると、次のエラーが表示されます

Traceback (most recent call last):
File "/Users/dylanevans/Documents/Code/Python/TurtleWorld.py", line 1, in <module>
from swampy.TurtleWorld import *
ImportError: No module named swampy.TurtleWorld

pip と distutils を使用して swampy をインストールおよびアンインストールしました。swampy は site-packages にあり、インタープリターにどのモジュールがインストールされているかを尋ねると、swampy が表示されます。エラーが発生する理由がわかりません。

また、私の PYTHONPATH には、最後に「/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/swampy」があります。2回ありますが、それが重要かどうかはわかりません。

どんな助けでも大歓迎です。

ありがとう

4

3 に答える 3

2

ターミナルを開いて入力すると、env | grep ^PYTHONPATHうまくいけば次のようになります。

PYTHONPATH=/python/path/with/write/access:/another/python/path

書き込みアクセス権があるパスの 1 つを選択します。OURPYPKGPATH=/python/path/with/write/access

そのような PYTHONPATH が存在しない場合は、ホーム ディレクトリに独自の PYTHONPATH を作成し、Python が将来それを参照できるようにします。

mkdir ~/.ourPyPkgPath
echo 'export PYTHONPATH=$PYTHONPATH:~/.ourPyPkgPath' >> ~/.profile

そして、この場合、私たちは使用しますOURPYPKGPATH=~/.ourPyPkgPath

今、swampyをインストールします

easy_install -d $OURPYPKGPATH 'http://pypi.python.org/packages/source/s/swampy/swampy-2.1.1.tar.gz'

ここで、PYTHONPATH 環境変数を設定するには、いずれかsource ~/.profileまたはログアウトして再度ログインする必要があります。

于 2012-07-14T13:59:09.513 に答える
1

また、私の PYTHONPATH には、最後に「/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/swampy」があります。2回ありますが、それが重要かどうかはわかりません。

そこに手動で追加しましたか?PYTHONPATHパッケージを標準以外の場所にインストールする場合、つまり、パッケージを使用しないpipeasy_install、Python でグローバルに利用できるようにしたい場合は、変更する必要があります。

このような頭痛の種を解消するには、 を使用して作成できる仮想 python 環境を使用することをお勧めしますvirtualenv。virtualenv をインストールしたら:

burhan@lenux:~$ virtualenv --no-site-packages swampy
The --no-site-packages flag is deprecated; it is now the default behavior.
New python executable in swampy/bin/python
Installing distribute.............................................................................................................................................................................................done.
Installing pip...............done.
burhan@lenux:~$ source swampy/bin/activate
(swampy)burhan@lenux:~$ pip install swampy
Downloading/unpacking swampy
  Downloading swampy-2.1.1.tar.gz (46Kb): 46Kb downloaded
  Running setup.py egg_info for package swampy

Installing collected packages: swampy
  Running setup.py install for swampy

Successfully installed swampy
Cleaning up...
(swampy)burhan@lenux:~$ python
Python 2.7.3 (default, Apr 20 2012, 22:44:07) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from swampy.TurtleWorld import *
>>> quit()
(swampy)burhan@lenux:~$
于 2012-07-14T15:12:13.330 に答える
0

swampy モジュールをインストールしましたか? そうでない場合は、こちらの手順に従ってください。

スタンドアロン スクリプトを実行するには、コードを次のブロック内に配置します。

if __name__ == '__main__':
    world = TurtleWorld()
    bob = Turtle()
    wait_for_user()

これは、スクリプトが直接呼び出されている場合にコードを実行するように python に指示します。したがって、代わりにこれを次のような関数にswampFunction入れ、別のスクリプトから呼び出した場合、上記のブロックは実行されません。

于 2012-06-28T19:20:42.170 に答える