我正在尝试在Windows 10上执行Shell脚本。我还打开了“ Linux的Windows子系统”功能,因为该脚本需要运行一个软件包,要求我在安装过程中执行此操作。
我的程序路径为:
Ctrl+M, Ctrl+M
然后,我尝试通过以下方式运行存储在特定文件夹(直接称为工作目录)中的shell脚本:
Ctrl+M, Ctrl+M
但这给了我这个错误:
export PATH=$PATH:/Users/Myname/Desktop/Myfolder
我很困惑,因为我指定了python /Users/Myname/Desktop/Myfolder/Mysubfolder/create_fa.py
文件的存储位置,但是当我运行shell脚本时,似乎正在尝试将C:\Users\Myname\AppData\Local\Programs\Python\Python38-32\python.exe: can't open file 'C:/Program Files/Git/Users/Myname/Desktop/Myfolder/Mysubfolder/create_fa.py': [Errno 2] No such file or directory
文件放在与我不同的目录中指定。脚本为什么要查找其他目录?
答案 0 :(得分:1)
我正在运行一个shell脚本(.sh),当我运行该脚本时,它将与“ Git for Windows”一起运行
这是“腐败”之源。
Git Bash终端会创建一个“ Linux风格的”目录层次结构(某种),其中/
(“根”目录)设置为C:/Program Files/Git
。因此,如您所见,当您使用路径/Users/Myname/Desktop/Myfolder/Mysubfolder/create_fa.py
时,Git Bash会将其解析为C:/Program Files/Git/Users/Myname/Desktop/Myfolder/Mysubfolder/create_fa.py
。
在Git Bash中,您可以像这样访问常规目录:
~
=%USERPROFILE%(您的用户目录)/c/...
=目录位于C:\
下,因此您的桌面将是/c/Users/username/Desktop
答案 1 :(得分:0)
问题是python
根本没有看$PATH
。如果您在多个PATH文件夹中有script.py
,那么您如何期望python
来区分运行哪个script.py
?
python
的工作是进入当前目录,即C:/Program Files/Git/
,您需要退出该文件夹以获取相对路径,或提供绝对路径。
例如如果您的bash会话当前位于/Users/Myname/
,那么您要做的就是:
python Desktop/Myfolder/Mysubfolder/create_fa.py
或将用户文件夹作为绝对路径传递:
python ~/Desktop/Myfolder/Mysubfolder/create_fa.py