2

APScheduler を使用して Python バックグラウンド ワーカーを作成できることを appFog Web サイトで読んだ後、試してみました。次の行を含むrequirements.txtファイル (で作成) を使用して、単純な python スタンドアロン アプリケーションをプッシュしようとしました。pip freeze

APScheduler==2.0.3
MySQL-python==1.2.4b5

しかし、それを appFog にプッシュすると、次のエラーが発生しました。

====> /logs/stderr.log <====
Traceback (most recent call last):
  File "testConnectionDB.py", line 3, in <module>
    from apscheduler.scheduler import Scheduler
ImportError: No module named apscheduler.scheduler

したがって、requirements.txtファイルが読み取られていないと推測しました。appFog サポートは、スタンドアロン アプリではまだサポートされていないことを確認しました。つまり、python スタンドアロン アプリは appfog でライブラリをインポートできないため、その使用は非常に制限されています。

だから、誰かがすでにこの経験をしているのか、そして誰かが回避策を見つけたのかと思っていました. Rubyでやったり、別のプラットフォームに切り替えたりしたくないです。通常のpythonまたはdjango-pythonアプリでこれを行う方法はありますか?

4

2 に答える 2

2

非スタンドアロン アプリ内で起動しようとしましたか (CherryPy のような Web インターフェイスを追加するなど)。これにより、requirements.txt をコンパイルして、スタンドアロン アプリの問題を解決できるはずです。

とにかく、上記はRubyアプリの制限を回避する方法です:)

于 2012-11-19T16:48:14.073 に答える
0

アップデート:

Web アプリからスクリプトを呼び出すことを解決せずに、実際にこれを解決することができました。これはより優れた真のスタンドアロンの回避策だと思います。

基本的には、スクリプトを実行可能ファイルとしてパッケージ化し、生成されたバイナリ/実行可能ファイルを呼び出すランチャー python スクリプトを作成する必要があります。

詳細については、私のブログをご覧ください。


私も同じ問題を抱えていました。スクリプトを呼び出すために Web アプリを操作したくありませんでしたが、それが最善の方法のように思えました。

私は Flask でそれを行うことができ、バックグラウンド ワーカー スクリプトを呼び出すルートを作成しました。私は APScheduler を使用しませんでした。古き良きものos.system()で、十分に安定しているように見えました。

ブログに詳しく書いています。

于 2013-01-28T02:53:43.263 に答える