[英]Python script is behaving differently when run through batch file and cmd line
[英]cmd and bat behaving differently
编辑:
与同事讨论此问题后,我们认为我们知道为什么.bat与在cmd窗口中逐行键入时的运行方式不同。 我们认为行./venv/Scripts/activate.bat
在外壳./venv/Scripts/activate.bat
激活虚拟环境,而不是其余代码的运行位置。 从那一行开始,我将需要所有代码在同一shell中运行。 (仅供参考,由于我相对较新,因此我不确定这是否有意义。)
我正在尝试通过运行带有必要命令的bat文件来创建虚拟环境。 当我通过将.bat代码中的行复制粘贴到cmd窗口中并分别运行每个行来运行这些代码时,这些代码将按预期运行。 但是,当我运行.bat文件时,它不起作用。
我认为挑战来自以下事实:bat脚本必须在目录中移动,因为虚拟环境必须在本地文件夹中创建,而随后调用的脚本和文件则托管在网络文件夹中。
此设置无法更改,因此我需要能够在.bat文件中的目录之间正确移动。
我在StackOverflow中四处张望,找不到与类似行为有关的任何问题。 我一直在阅读相关文档,但是还没有发现任何有用的信息。 我正在运行anaconda3发行版。 Windows10。我不确定哪些信息可能会对故障排除有所帮助,所以如果您需要更多信息,请告诉我。 您将在下面找到我的代码。
echo ON
REM Change directory to user's local dir
chdir C:\Users\USERNAME
C:
REM Check whether environments folder exists, if not, create it.
if not exist "C:\Users\USERNAME\Environments\" mkdir C:\Users\USERNAME\Environments
REM Create virtual environment in this new/existing folder and activate it.
python -m venv venv/
"./venv/Scripts/activate.bat"
REM Change directory to network drive where document files are located
chdir I:\NETWORKDIR_PATH\FOLDER_OF_INTEREST
I:
REM Make sure necessary packages are installed.
pip install -r ./src/requirements.txt
REM Run script and close shell after 20 secs
python "./src/main_script.py"
REM FOLDER_OF_INTEREST contains the following items:
REM two excel files which will interact with the main_script.py script
REM a folder called "src" which has the packages to be installed within my environment
REM "src" also contains two python scripts. The first is the main_script.py, the other contains functions called by main_script.py
就目前而言,当我在cmd窗口中单独运行每一行时,一切都很好。
如果我尝试运行.bat文件,则代码将一直运行到
python -m venv venv/
"./venv/Scripts/activate.bat"
此时,cmd窗口退出,什么也没有发生...
任何帮助/建议表示赞赏!
PS:那里有ping
命令,因为如果没有,则cmd窗口会退出得太快,我看不到发生了什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.