bash python没有这样的文件或目录:为什么我的文件路径与指定的路径不同?

时间:2019-10-24 18:40:45

标签: python

我正在尝试在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文件放在与我不同的目录中指定。脚本为什么要查找其他目录?

2 个答案:

答案 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