2016-03-18 21 views
0

私はこのプロジェクトで作業中のフィードパーサーモジュールを使用しようとしています。ファイルをApp Engineにアップロードしてスクリプトを実行すると、フィードパーサーという名前のモジュールがないというエラーが返されます。Google App EngineプロジェクトにPythonモジュールを追加してください

このエラーを修正してRSSを使用できるように、このモジュールをApp Engineにインストールできるかどうか、どうすればいいですか?

エラー:

Traceback (most recent call last): 
    File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 240, in Handle 
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler()) 
    File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler 
    handler, path, err = LoadObject(self._handler) 
    File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 85, in LoadObject 
    obj = __import__(path[0]) 
    File "/base/data/home/apps/s~vlis-mannipulus-bot/1.391465315184045822/main.py", line 7, in <module> 
    import feedparser 
ImportError: No module named feed parser 

  • 開発1:

だから、私はこの失敗例では(私が作成したlibディレクトリにモジュールをインストールしようとしました--prefix = ..で/ libを忘れてしまった)。そして、私はシェルに示されているようにPYTHONERRORを取得します。私はPythonのパスに関するいくつかの研究を行って、私が試したソリューションは私のために働かなかった。

kevins-MacBook-Pro-2:~ KevinH$ cd /Users/KevinH/Downloads/feedparser -5.2.1 
kevins-MacBook-Pro-2:feedparser-5.2.1 KevinH$ sudo python setup.py  install --prefix=/Users/KevinH/Documents/Thalia\ VMbot/Thalia-VMbot/ 
Password: 
running install 
Checking .pth file support in /Users/KevinH/Documents/Thalia  VMbot/Thalia-VMbot//lib/python2.7/site-packages/ 
/usr/bin/python -E -c pass 
TEST FAILED: /Users/KevinH/Documents/Thalia VMbot/Thalia- VMbot//lib/python2.7/site-packages/ does NOT support .pth files 
error: bad install directory or PYTHONPATH 

You are attempting to install a package to a directory that is not 
on PYTHONPATH and which Python does not read ".pth" files from. The 
installation directory you specified (via --install-dir, --prefix, or 
the distutils default setting) was: 

/Users/KevinH/Documents/Thalia VMbot/Thalia-VMbot//lib/python2.7/site- packages/ 

and your PYTHONPATH environment variable currently contains: 

'' 

Here are some of your options for correcting the problem: 

* You can choose a different installation directory, i.e., one that is 
on PYTHONPATH or supports .pth files 

* You can add the installation directory to the PYTHONPATH environment 
variable. (It must then also be on PYTHONPATH whenever you run 
Python and want to use the package(s) you are installing.) 

* You can set up the installation directory to support ".pth" files by 
using one of the approaches described here: 

https://pythonhosted.org/setuptools/easy_install.html#custom- installation-locations 

Please make the appropriate changes for your system and try again. 

は、私は「ピップ」コマンドを使用してみましたが、その後、私はこれを取得:

can't open file 'pip': [Errno 2] No such file or directory 

のpython 2.7、最大でインストールされたデフォルトのプログラムである必要があり、私は「ピップ」を読んだものによります。だから、python3.5をインストールして、それを走らせて、同じエラーが出るのを確実にしてください。私は両方のニシキヘビでこれを入力:

kevins-MacBook-Pro-2:feedparser KevinH$ python3 pip -m install feedparse 

-

これがうまくいくかどうかわからないが、私はフィードパーサが自分のシステムにインストールされているデフォルトのディレクトリに行って、それをコピーした端子を介してlibディレクトリを作成しました。次に、次の設定ファイルを作成しました。

from google.appengine.ext import vendor 

# Add any libraries installed in the "lib" folder. 
vendor.add('lib') 

上記のものと同じエラーが表示され、feeedparserという名前のモジュールはありません。

私が何かばかげたやり方をしているならば、謝罪しても、まだ学習過程にある。サードパーティのモジュールを追加する方法を説明します

+0

アプリ内のフィードパーサーファイルはどこにありますか?また、appengine_config.pyファイルがある場合は、その内容を投稿できますか? – snakecharmerb

+0

@snakecharmerbそれは私のアプリケーションファイルにはない、自動的に私のシステムにモジュールをインストールします。私はそれをaapルートファイルにインストールする方法を見つけてはいけませんか?私はまだappengine_config.pyファイルを持っていません。私の研究では、それはあなたがモジュールを扱うファイルですか? – Kevin

答えて

0

App Engineのドキュメントを要約するとhere

で、アプリオフにトップレベルに、通常は「LIB」という名前のフォルダを、追加する必要があり、その後、インストールされますそのドキュメントに記載されているコマンドを使用して、そのフォルダにまた、ドキュメントに記載されているようにappengine_config.pyファイルを作成する必要があります。

サードパーティのパッケージはすべてApp Engineにアップロードできないことに注意してください.C拡張機能を持つパッケージは禁止されています。 Feedparserは私にはうまく見えます。

編集:さらに編集に基づいて "development1"の質問に質問します。

appengine_config.pyがよさそうです。

"lib"フォルダは、アプリケーションフォルダ(app.yamlappengine_config.pyファイルと同じフォルダ)にする必要があります。

フィードフォルダパッケージをlibフォルダにインストールする必要があります。 Googleドキュメントを使用すると、このコマンドは、あなたのlibフォルダにfeedparserパッケージをインストールします

pip install -t lib feedparser

コマンドを実行することにより、これを行うことをお勧めします。

Python2.xで動作するpipのバージョンをインストールして実行する必要があります。Python3バージョンでは、Python3でのみ実行されるfeedparserのバージョンが作成されます。

あなたはPython2 this questionためのピップをインストールすることができない場合は、適切なソリューションを提供するかもしれないが、そうでなければ私はあなたがMac.I上のディレクトリをカスタムインストールにfeedparserをインストールする方法についての個別の質問をすることをお勧めしたいありませんMacのように私はこれを手伝ってはいけない。

libフォルダにフィードパーサーがインストールされたら、アプリがローカルで動作することを確認します。特にあなたのlib/feedparserのインストールを使用していることを確認してください:インポートするファイルの場所を確認するためにfeedparserをインポートした後にfeedparser.__file__を記録してみてください。

すべてがローカルで動作したら、GAEにアップロードできるはずです。

あなたのappengine_config.pyはうまく見えますが、App Engineにアップロードする前に正しいバージョンのfeedparserがappフォルダのlibフォルダにインストールされていることを確認する必要があります。

+0

デフォルトでないディレクトリにインストールしようとしたときにこのエラーが表示される: 'PYTHONPATHの ではないディレクトリにパッケージをインストールしようとしていますが、Pythonが" .pth "ファイルを。あなたが指定した のインストールディレクトリ(--install-dir、--prefix、またはdistutilsのデフォルト設定の )は ' – Kevin

+0

でした。libディレクトリにfeed parser.eggファイルを取得できましたが、appegine設定ファイルを追加しましたが私はまだ同じエラーX__Xを取得していますが、私はこれらの開発を見て最初の質問を編集する必要がありますか? – Kevin

+0

はい、入力したコマンドと出力をコピーして貼り付けてください。 – snakecharmerb

関連する問題