[解決済み] systemdサービスユニットでvirtualenvを有効にするには?
2022-09-07 07:52:01
質問
systemd サービスファイル内の virtualenv を有効にしたいのですが、どうすればよいでしょうか。
systemd プロセスと python インタープリタの間にシェルプロセスが存在しないようにしたいです。
私の現在の解決策は次のようなものです。
[Unit]
Description=fooservice
After=syslog.target network.target
[Service]
Type=simple
User=fooservice
WorkingDirectory={{ venv_home }}
ExecStart={{ venv_home }}/fooservice --serve-in-foreground
Restart=on-abort
EnvironmentFile=/etc/sysconfig/fooservice.env
[Install]
WantedBy=multi-user.target
/etc/sysconfig/fooservice.env
PATH={{ venv_home }}/bin:/usr/local/bin:/usr/bin:/bin
PYTHONIOENCODING=utf-8
PYTHONPATH={{ venv_home }}/...
VIRTUAL_ENV={{ venv_home }}
しかし、私は困っています。sys.pathのいくつかのエントリが見つからないので、ImportErrorsを得ます。
どのように解決するのですか?
virtualenvは、"baked into the Python interpreter in the virtualenv"である。これはつまり、起動時に
python
または
console_scripts
その仮想環境に直接アクセスできるため、仮想環境の起動や管理は必要ありません。
PATH
自分
ExecStart={{ venv_home }}/bin/fooservice --serve-in-foreground
または
ExecStart={{ venv_home }}/bin/python {{ venv_home }}/fooservice.py --serve-in-foreground
を削除してください。
EnvironmentFile
を入力します。
本当に正しいかどうかを確認するために、次のことを確認できます。
sys.path
駆けて
{{ venv_home }}/bin/python -m site
と比較し、その出力を
python -m site
関連
-
[解決済み】Pythonのvirtualenvを離脱/終了/無効化する方法
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] 環境変数の値にアクセスする方法
-
[解決済み] エクスポートされた環境変数を削除する方法を教えてください。
-
[解決済み] virtualenvで異なるバージョンのPythonを使用する
-
[解決済み] Python 3をvirtualenvで使う
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】venv, pyvenv, pyenv, virtualenv, virtualenvwrapper, pipenvなどの違いは何ですか?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
-
[解決済み] Django Rest Framework ファイルアップロード
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Pythonです。未束縛のメソッドを束縛する?
-
[解決済み] PythonでSVGからPNGに変換する
-
[解決済み] Spyderを仮想環境で動作させるには?
-
[解決済み] PythonからSMTPを使用してメールを送信する
-
[解決済み] SQLAlchemy - テーブルのリストを取得する
-
[解決済み] PyMongoで.sortを使用する
-
[解決済み] Celeryタスクのユニットテストはどのように行うのですか?
-
[解決済み] Flaskで非同期タスクを作る
-
[解決済み] PySparkでデータフレームのカラムをString型からDouble型に変更する方法は?
-
[解決済み] pipの依存性/必要条件をリストアップする方法はありますか?