2

私は、python 2.7、ubuntu 12.04、および webapp2 フレームワークを使用した Web アプリ開発に Google アプリ エンジンを使用しています。

何らかの奇妙な理由で、ローカル開発サーバーでアプリを実行すると、以前のように http 応答を表示したり、ターミナルでエラーを表示したりできなくなりました。どうしてこうなったのかわからない。

また、ターミナルを使用して、次のように dev_server.py コマンドを使用して新しいを実行すると、

ahmad@ubuntu:~/GAE$ python google_appengine/dev_appserver.py wiki

ソケットが使用されているというエラーが表示されます。アプリを実行したとき、ctrl + cをクリックして強制終了し、別のアプリを再実行する必要があったことを覚えています..今ではバックグラウンドで実行されているようで、別のアプリを実行しようとすると、ソケットが実行されているというステートメントが表示されます使用済み...

これは、ローカル開発サーバーで差分アプリを実行するためのタイリングの正確なエラーです。

ahmad@ubuntu:~/GAE$ python google_appengine/dev_appserver.py wiki
WARNING  2012-06-09 17:04:25,981 rdbms_mysqldb.py:74] The rdbms API is not available because the MySQLdb library could not be loaded.
INFO     2012-06-09 17:04:26,022 appengine_rpc.py:160] Server: appengine.google.com
INFO     2012-06-09 17:04:26,024 appcfg.py:582] Checking for updates to the SDK.
INFO     2012-06-09 17:04:26,221 appcfg.py:600] The SDK is up to date.
WARNING  2012-06-09 17:04:26,221 datastore_file_stub.py:518] Could not read datastore data from /tmp/dev_appserver.datastore
Traceback (most recent call last):
  File "google_appengine/dev_appserver.py", line 125, in <module>
    run_file(__file__, globals())
  File "google_appengine/dev_appserver.py", line 121, in run_file
    execfile(script_path, globals_)
  File "/home/ahmad/GAE/google_appengine/google/appengine/tools/dev_appserver_main.py", line 690, in <module>
    sys.exit(main(sys.argv))
  File "/home/ahmad/GAE/google_appengine/google/appengine/tools/dev_appserver_main.py", line 653, in main
    persist_logs=persist_logs)
  File "/home/ahmad/GAE/google_appengine/google/appengine/tools/dev_appserver.py", line 3595, in CreateServer
    server = HTTPServerWithScheduler((serve_address, port), handler_class)
  File "/home/ahmad/GAE/google_appengine/google/appengine/tools/dev_appserver.py", line 3623, in __init__
    request_handler_class)
  File "/usr/lib/python2.7/SocketServer.py", line 408, in __init__
    self.server_bind()
  File "/usr/lib/python2.7/BaseHTTPServer.py", line 108, in server_bind
    SocketServer.TCPServer.server_bind(self)
  File "/usr/lib/python2.7/SocketServer.py", line 419, in server_bind
    self.socket.bind(self.server_address)
  File "/usr/lib/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 98] Address already in use
INFO     2012-06-09 17:04:26,322 datastore_stub_util.py:2410] Applying all pending transactions and saving the datastore

事前に助けてくれてありがとう

4

3 に答える 3

3

「アドレスは既に使用されています」は、ポートが他のプロセスによって既に使用されているように見えます。

于 2012-06-09T17:18:33.687 に答える
1

ポートにハングアップしているプロセスを見つけてみてください。次のようなものを使用するとps aux、ゾンビの appserver インスタンスをすぐに認識する可能性があります。そうでない場合は、どのプロセスがポートを使用しているかを判断するための例があります。あなたはそれをしなければならないかもしれませんkill -9

使用中の場合は、引数を使用して別のポートで dev_appserver を開始し-p PORTます。

于 2012-06-09T20:18:53.443 に答える
0

(dev_appserver の 2 つのインスタンスを使用して) 2 つのアプリを同時に実行しようとしている場合は、そのうちの 1 つに別のポートを使用するように指示する必要があります。これについては、 Running the Development Web Serverで例を挙げて説明しています。

Ubuntu で dev_appserver を Ctrl-C しても、バックグラウンドで実行するためにさまようことはありません。(Ctrl-Z'ing かもしれません)。

于 2012-06-09T17:27:42.807 に答える