37

を使用してプログラムを実行しようとしてpaster serveいますが、エラーが発生し続けます。

ImportError:dateutil.relativedeltaという名前のモジュールがありません

Pythonバージョン2.6.7とdateutilバージョン1.5を実行しているので、インストールする必要があります。

なぜこれが起こるのかについて誰かが何か考えを持っていますか?

を使用してインポートしています

from dateutil.relativedelta import *

検索するとパッケージも表示されます。

/usr/lib/python2.7/site-packages/dateutil/relativedelta.pyc
/usr/lib/python2.7/site-packages/dateutil/relativedelta.py
/usr/lib/python2.7/site-packages/dateutil/relativedelta.pyo

アップデート

すぐにこれを見るとdateutil、Python 2.7にのみインストールされていることがわかります。私が行っていたのは、次のとおりです。

sudo yum install python-dateutil

これにsudoは、デフォルトのPythonバージョン(つまり、2.6.4ではなくPython 2.7)に切り替える必要があります。

これを解決するのは次のように簡単でした。

su
(switch to virtual environment)
yum install python-dateutil

仮想環境を使用suしてから切り替えると、rootアクセスが許可され、仮想Pythonディレクトリにインストールされます。を使用sudoすると、仮想環境のサイトパッケージではなく、デフォルトのディレクトリにライブラリがインストールされます。

4

4 に答える 4

63

私もこの問題に遭遇しました。--upgrade私が使用することになった簡単な解決策は、コマンドの最後に追加することでした。これにより、Pythonがインストールされていると思っていても、強制的にインストールされました。これで問題は解決しました。

したがって、この問題が発生した場合は、次のことを試してください。

sudo pip install python-dateutil --upgrade

何も害を及ぼす可能性はないので、強制的に再インストールしても問題はありません。

于 2012-10-14T14:33:43.117 に答える
8

私も同様の問題を抱えていましたが、理由はもっと単純です。私の新しいvirtualenvにはdateutilがインストールされておらず、Pythonパッケージ名もわかりませんでした。試してみpip install dateutilましたが、パッケージ名が間違っていたため、明らかに機能しませんでした。代わりに実行pip install python-dateutilすることは機能しました(に頼ることなくsudo)。

于 2013-09-04T08:23:11.280 に答える
1

これは私にはパッケージのインストールの問題のように見えます。私の頭に浮かぶトラブルシューティングリスト:

  1. パッケージがインストールされていることを確認します。
  2. インストールされている場合は、ファイルが正しいディレクトリ(Pythonインタプリタからアクセスできるディレクトリ(= PYTHONPATH内、ここで役立つ記事)に保存されていることを確認してください)。
  3. それらのファイルの権限を確認してください。
  4. そこでインポートを試みた場合は、シェルを再起動してください。
  5. コンピュータを再起動します(痛いです...私がGNU / Linuxを使い始めてから10年ですが、それでもWindowsの悪い記憶に苦しんでいます!;)
于 2011-12-07T16:25:33.277 に答える
1

(python-dateutilのインストールに関する以前のコメントは私を助けたので、おそらく私のコメントは他の誰かを助けます)。

Mac OS(v10.6(Snow Leopard)、他のバージョンについてはよくわかりません)を使用している場合、dateutilsパッケージはデフォルトで次の場所にあります。

/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/dateutil

一方、pip installは、パッケージを次の宛先に書き込みます。

/Library/Python/2.6/site-packages

/Library/Python/2.6/site-packages/easy-install.pthファイルは更新されません。その結果、dateutilをインポートするときに、古い場所をポイントしたままになります。これは「import dateutil; dateutil.__file__」で確認できます。

それで、私がしたこと(おそらくより良い方法が利用可能です)は、古いディレクトリ(/System/Library/.../dateutil)の名前を変更してdateutil.obsoletePythonを再起動し、同じコマンドのセットを再度実行することでした。これはパスファイルまたはに何もしませんがsys.path、古いdateutilsパッケージをスキップして、新しいパッケージにアクセスできるようにします。

于 2013-01-19T18:48:18.633 に答える