【问题标题】:Running commands within virtualenv in python在 python 中的 virtualenv 中运行命令
【发布时间】:2019-12-24 14:24:48
【问题描述】:

我正在尝试在 python 2 virtualenv 下运行 python 脚本。如何通过批处理脚本/python脚本运行?

我已经安装了 python2 和 python 3 并创建了虚拟环境。我尝试通过 python 脚本调用它,但它甚至没有进入 virtualenv。然后我尝试了下面的批处理脚本。但它只是执行了代码的第一行。即只是激活虚拟环境。但其他行没有被执行。

我什至尝试在 bat 文件中分别执行第一行批处理脚本,然后使用 perl/python 调用其他脚本。但他们都没有工作。

请提供一种使用 python 脚本或 一个批处理文件,我需要通过 perl/python 运行它

我使用的批处理文件:

C:\venv-2\Scripts\activate
pushd <some path>
python test.py
deactivate

【问题讨论】:

    标签: python windows virtualenv


    【解决方案1】:

    我得到了通过给执行的批处理文件,

    C:\venv-2\Scripts\activate & pushd <some path> & python test.py & deactivate
    

    在批处理文件中。并使用perl脚本调用批处理文件

    system('start test.bat')
    

    【讨论】:

      【解决方案2】:

      手头没有 Windows 环境,这不是 *nix 的答案,它可能适用于 Windows。

      不要直接调用 venv bin,而是尝试在脚本中激活它。例如:

      # my-script.sh
      
      # activate 
      source venv/bin/activate
      
      # this should be in the venv
      which python3
      python3 -c 'print("Hello from python3")'
      

      然后$ bash my-script.sh 应该打印出它认为在脚本中使用了哪个python3。

      另请参阅A Python script that activates the virtualenv and then runs another Python script?,了解同样的想法做得更好......

      【讨论】:

        【解决方案3】:

        直接使用 virtualenv 的 Python 解释器即可:

        pushd some_path
        c:\venv-2\scripts\python test.py
        popd
        

        【讨论】:

        • 我试过了,脚本只在虚拟环境中运行。所以直接使用virtualenv的python解释器就不行了
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-14
        • 1970-01-01
        相关资源
        最近更新 更多