如何使用 Anaconda 在后台运行 python 脚本?(“nohup python -u test.py &”不起作用!)

Sye*_*que 5 python windows git-bash anaconda

我有一个简单的 python 脚本test.py

import time
import logging

logging.basicConfig(filename='app.log', filemode='w', level=logging.DEBUG)
i=0

while i<100:
    i+=1
    logging.info(i)
    print(i)
    time.sleep(1)
Run Code Online (Sandbox Code Playgroud)

我想使用 anaconda 在后台运行这个脚本。我试过 :nohup python -u test.py &python关键字在我的机器上调用 anaconda 。看来脚本仍然链接到我用来运行它的终端。如果我关闭终端,执行就会停止,如果我使用“退出”关闭终端,终端会变黑但不会关闭。如果我使用“X”关闭,执行就会停止。

触发 python 脚本在 anaconda 上后台运行的正确方法是什么?

$ conda info

     active environment : None
          conda version : 4.9.2
    conda-build version : 3.20.5
         python version : 3.8.5.final.0
       virtual packages : __win=0=0
                          __archspec=1=x86_64
       base environment : F:\Automation\Anaconda3  (read only)
           channel URLs : https://repo.anaconda.com/pkgs/main/win-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/win-64
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://repo.anaconda.com/pkgs/msys2/win-64
                          https://repo.anaconda.com/pkgs/msys2/noarch
               platform : win-64
             user-agent : conda/4.9.2 requests/2.24.0 CPython/3.8.5 Windows/10 Windows/10.0.17763
          administrator : False
             netrc file : None
           offline mode : False
Run Code Online (Sandbox Code Playgroud)

用于运行脚本的终端:Git,版本:2.29.2.windows.3

lay*_*ser 3

使用 conda 环境的 python 可执行文件。

  1. 运行 conda info 以获取基本环境的路径:<base_environment_path>
  2. 要使用特定的环境,请使用其名称,然后访问 python bin 可执行文件:
  3. nohup <base_environment_path>/envs/<env-name>/bin/python <script_name>.py

例如

nohup /home/ubuntu/anaconda3/envs/my-env/bin/python test.py > output.txt &
Run Code Online (Sandbox Code Playgroud)