5

私はGoogleAppEngineを初めて使用するため、「helloworld」を出力するだけのアプリケーションをテストする手順に従いました。

(Google App Engineのドキュメントによると)

プロジェクトフォルダ名は「GoogleApp」です

これは私のPythonファイルです:

ファイル名:sayHello.py

#!/usr/bin/env python

def main():
    print "hello"
    pass

if __name__ == '__main__':
    main()

これはyamlファイルです

ファイル名:app.yaml

application: GoogleApp
version: 1
runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /.*
  script: sayHello.py

Google App Engine Launcherでプロジェクトを実行すると、これがログエラーになります。

2012-04-19 10:52:23 Running command: "['C:\\Python27\\pythonw.exe', 'C:\\Program Files\\Google\\google_appengine\\dev_appserver.py', '--admin_console_server=', '--port=8080', 'D:\\Code\\Projects\\IRCmathBot\\GoogleApp']"
Traceback (most recent call last):
  File "C:\Program Files\Google\google_appengine\dev_appserver.py", line 125, in <module>
    run_file(__file__, globals())
  File "C:\Program Files\Google\google_appengine\dev_appserver.py", line 121, in run_file
    execfile(script_path, globals_)
  File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver_main.py", line 157, in <module>
    from google.appengine.tools import appcfg
  File "C:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.py", line 41, in <module>
    import mimetypes
  File "C:\Python27\lib\mimetypes.py", line 29, in <module>
    import urllib
  File "C:\Python27\lib\urllib.py", line 26, in <module>
    import socket
  File "C:\Python27\lib\socket.py", line 47, in <module>
    import _socket
ImportError: Module use of python25.dll conflicts with this version of Python.
2012-04-19 10:52:25 (Process exited with code 1)

実際、私はPython2.7を使用しています。上記のログは、python25.dllがPythonのバージョンと競合していることを示しています。

正確にはわかりませんが、解釈はできます

  1. Python2.5のみをサポートするか
  2. Python2.5コードを使用する必要がありました。

2番目は不可能であり、Googleは2.7をサポートしているため、このエラーが何であるかわかりません。

自分自身を理解しようとしましたが、成功しませんでした。

4

11 に答える 11

5

(チュートリアルコードの実行中に)非常によく似た問題が発生し、PythonPathシステム環境変数をチェックすることで問題を解決しました。

私の場合、OpenCVはPythonPath変数を編集して、基本のPythonインストール自体ではなく独自のディレクトリ構造を指すようにしました。

[システムの詳細プロパティ]ウィンドウを開き、[環境変数]ボタンをクリックすると、環境変数を編集できます。「システム変数」の下の「PythonPath」変数。少なくとも、「C:\Python27\」などのPython実行可能ファイルのパスを含める必要があります。

于 2012-06-05T00:18:43.773 に答える
2

コマンドラインで試しましたか?ランチャーを忘れてください。私も同じ問題を抱えていました!Pythonを数回再インストールし、バージョンを変更しました。陽気でした。バージョン2.5では、ランチャーでサーバーを起動できますが、アプリケーションは機能しませんが、ランチャーを介してオンラインでアップロードできます。Pythonver。2.7、ランチャーはあなたが扱っているのと同じ問題を表示します。また、サーバーをローカルで起動することもできません。ただし、コマンドラインは、サーバーをローカルで起動する場合とオンラインでアップロードする場合の両方でうまく機能します。だから私はバージョン2.7に固執します。お役に立てば幸いです。お知らせください。

于 2012-04-22T22:57:41.813 に答える
1

スレッドセーフが有効になっているため、WSGIハンドラーを使用する必要があります。それが問題になる可能性があります。私はあなたのコードを次のものに置き換えます:

ファイル:helloworld.py

import webapp2

class MainPage(webapp2.RequestHandler):
    def get(self):
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.out.write('Hello, WebApp World!')

app = webapp2.WSGIApplication([('/', MainPage)])

ファイル:app.yaml

application: GoogleApp
version: 1
runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /.*
  script: helloworld.app

Google AppEngineでPython2.7を使用している場合は、この公式ドキュメントを参照して、最初の「HelloWorld」アプリケーションを作成してください。

于 2012-04-19T06:58:21.587 に答える
1

私は3時間の努力の後にこれを修正しました。再インストールしても問題を解決できず、ユーザー/システム環境変数をいじることもできません。このステップの作業に従ってください:

Googleドライブパーファレンスを開き、勝利後に自動実行をオフにします起動後にGoogleドライブをオフにするか、単にGoogleドライブをアンインストールします(GoogleドライブはPython2.5_socketライブラリを使用しているようです

pythonをアンインストールしてGAEを再起動しますpython27とGAEをインストールします最も重要なのは、新しいパスを指定し、デフォルトのc:\ python27を再度使用しないことです(GAEと同じようにc:\ mypython27に変更しました。新しいパスを使用します)。

その後、再び動作します。

于 2013-01-15T08:28:22.257 に答える
0

Python 2.7のインストールで深刻な問題が発生しました。その一部は、Python2.5ライブラリを参照しています。マシン上のPythonのすべてのバージョンをアンインストールし、必要なバージョンを再インストールする必要があります。

于 2012-04-20T00:46:47.100 に答える
0

GAEパスを環境変数PATHに追加したと思いますか?削除するだけです。

私はあなたとまったく同じ問題を抱えていました。Python2.7はGAEパスの下で誤った_socket.pydlibを使用しようとしているようですが、PATHからGAEパスを削除するとこれが修正されます。

追加のコーディングは必要ありません。WinOSの小さな構成だけです。私のOS言語は中国語なので、以下のアイコン/リンクの名前は私自身が中国語から翻訳したものであり、正しいことを保証することはできません:(

  1. 「コンピュータ」アイコンを右クリックし、「プロパティ」を選択すると、システムパネルにいくつかの基本的なシステム情報が表示されます。
  2. [システムの詳細設定]リンクをクリックすると、いくつかのタブを含むシステムプロパティパネルが表示されます。
  3. [詳細設定]タブを選択します。下部に[環境変数]という名前のボタンがあります。それをクリックすると、システムのすべての環境変数を表示するダイアログが表示されます。
  4. 「PATH」または「Path」という名前の変数を見つけて編集します(大文字と小文字は区別されません)。その値にGAEへのパスが含まれている場合は、GAEパスを削除します。
于 2012-10-01T09:16:42.773 に答える
0

私にとっては、システム変数PYTHONPATHを「。」に設定したことです。変数を削除することは仕事をしました!

于 2013-02-04T18:03:26.283 に答える
0

PYTHON_PATHをに設定しました

"C:\ Program Files \ Google \ google_appengine; C:\ Program Files \ Google \ google_appengine \ lib \ antlr3; C:\ Program Files \ Google \ google_appengine \ lib \ django_0_96 ; C:\ Program Files \ Google \ google_appengine \ lib \ fancy_urllib; C:\ Program Files \ Google \ google_appengine \ lib \ graphy; C:\ Program Files \ Google \ google_appengine \ lib \ ipaddr; C:\ Program Files \ Google \ google_appengine \ lib \ simplejson; C:\ Program Files \ Google \ google_appengine \ lib \ webob; C:\ Program Files \ Google \ google_appengine \ lib \ yaml \ lib "

しかし、django0.96にはpython2.5が必要であることがわかったので、django 1.4を使用すると、正常に動作します。

"C:\ Program Files \ Google \ google_appengine; C:\ Program Files \ Google \ google_appengine \ lib \ antlr3; C:\ Program Files \ Google \ google_appengine \ lib \ django-1.4 ; C:\ Program Files \ Google \ google_appengine \ lib \ fancy_urllib; C:\ Program Files \ Google \ google_appengine \ lib \ graphy; C:\ Program Files \ Google \ google_appengine \ lib \ ipaddr; C:\ Program Files \ Google \ google_appengine \ lib \ simplejson; C:\ Program Files \ Google \ google_appengine \ lib \ webob; C:\ Program Files \ Google \ google_appengine \ lib \ yaml \ lib "

上記と同じ問題が発生した場合は、PATH、PYTHON_PATHをチェックして、ライブラリとPythonのバージョンが一致していないかどうかを確認してください。この助けを願っています。

于 2013-04-24T11:03:32.217 に答える
0

一部のプログラムは、PYTHONPATH環境変数を変更する場合があります。その値をチェックし([システム]-> [環境変数])、正しいpython 2.7パス(デフォルトはC:\ Python27)に設定されていることを確認すると、問題が修正されるはずです。私の場合、何かがそれを私のグーグルアプリエンジンパスに設定しました。

于 2013-10-28T23:18:49.223 に答える
0
ImportError: Module use of python25.dll conflicts with this version of Python.

問題は、python25.dllPython2.7のインストールと競合することです。これpython25.dllは、Windows用の非常に古いGoogle App Engine Launcherに由来し、次の場所にあります。C:\Program Files\Google\google_appengine\launcher

これは、Python 2.7のインストールの問題ではありません。これは、独自のPythonパスをアプリ環境に挿入するLauncherの問題です。google_appengine/dev_appserver.pyこれをテストするには、最初のインポート後に上部に次の行を追加します。

from pprint import pprint
pprint(sys.path)

次に、アプリを再実行して新しいログを取得し、自分で確認します。

...
'C:\\OpenCV2.3\\opencv\\build\\python\\2.7',
'C:\\Google\\google_appengine\\launcher',
'C:\\Windows\\system32\\python27.zip',
'C:\\Python27\\DLLs',
...

Python .msi SDK 1.8.8からランチャーを入手しましたが、もちろん、Googleが壊れたGUIツールを備えたSDKのいくつかのバージョンを出荷しているのはsuxxです。これを修正するには、最初にインポートした後に次を追加しますdev_appserver.py

# --- Repair sys.path after broken GAE Windows Launcher
# see http://stackoverflow.com/questions/10222342/
ROOT = os.path.abspath(os.path.dirname(__file__))
LAUNCHPATH = os.path.join(ROOT, 'launcher')
if LAUNCHPATH in sys.path:
  sys.stderr.write('[BUG] GAE Windows Launcher detected. Fixing..\n')
  sys.path.remove(LAUNCHPATH)
# /--

残念ながら、GAEの新しいバージョンがリリースされたら、この手順を繰り返す必要があります。AppEngineトラッカーに問題#8568があり、スターを付けてコメントを付けて、いつか修正することができます。

于 2013-11-20T08:16:51.373 に答える
0

環境変数にPYTHONPATH変数がありますか?それを削除してGoogleAppEngine Launcherを再起動すると、機能します。

于 2014-02-22T02:11:02.260 に答える