Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用自定义自动机脚本在Spyder中打开Py文件时出现问题_Python_Macos_Spyder_Automator - Fatal编程技术网

Python 使用自定义自动机脚本在Spyder中打开Py文件时出现问题

Python 使用自定义自动机脚本在Spyder中打开Py文件时出现问题,python,macos,spyder,automator,Python,Macos,Spyder,Automator,所以我用自制软件安装了Miniconda,然后用Conda安装了Spyder。然后,我想通过创建一个打开Spyder的应用程序,使该过程更加“Mac”友好,因此我使用了topoman的解决方案,该解决方案位于此链接中接受的答案下方: 除了我遇到了两个问题(第二个问题不是真正的问题,更多的是与美学相关的问题)之外,一切都或多或少地正常工作: 我从这个GitHub()下载了py文件,只是为了测试它是否会打开py文件。它适用于他们,我还可以通过使用topoman在上面的链接中提供的“Spydrope

所以我用自制软件安装了Miniconda,然后用Conda安装了Spyder。然后,我想通过创建一个打开Spyder的应用程序,使该过程更加“Mac”友好,因此我使用了topoman的解决方案,该解决方案位于此链接中接受的答案下方:

除了我遇到了两个问题(第二个问题不是真正的问题,更多的是与美学相关的问题)之外,一切都或多或少地正常工作:

  • 我从这个GitHub()下载了py文件,只是为了测试它是否会打开py文件。它适用于他们,我还可以通过使用topoman在上面的链接中提供的“Spydropener”解决方案,将Spyder设置为默认应用程序
  • 问题是,当我在spyder中创建一个新文件并保存它,然后尝试单击“打开”时,它不会打开。我不知道区别是什么,也不知道为什么“Spydropener”在这个源于Spyder的py文件上不起作用,但在我下载的文件上却可以正常工作

  • 我很好奇是否可以更改默认为“Spydropener”的py文件的显示图标。我确实更改了Spydropener应用程序的图标,但它不起作用。这些文件的图标只是一张空白的打印纸 更新:

    我相信我找到了问题所在。这取决于文件所在的位置。当我把它放在桌面上时,没有问题。当我把它放在其他特定的地方,没有问题。根据实验,当文件位于名称中有空格的文件夹(例如文件夹名称)中时,打开器似乎不起作用。我一改文件夹名或文件夹名就可以了

    因此,有人能解释为什么当文件路径中的任何位置都有空格时,opener脚本会崩溃吗?是否可以编辑脚本以处理此问题

    它是否归结为以下堆栈线程(即,我需要在脚本中的某个位置应用双引号):

    此线程还建议脚本不应使用未加引号的$@参数,因为一旦您有“空格或通配符”,它就会中断:

    因此,请查看脚本和前面的步骤:

    #!/bin/bash
    /usr/local/bin/spyder $@
    
    那么,开场白脚本有:

    for f in "$@"
    do
        open /Applications/spyder.app --args $f
    done
    if [ -z "$f" ]; then
        open /Applications/spyder.app --args ~
    fi
    
    至于脚本的其余部分,我假设$f不会引起问题?不管怎样,问题似乎来自初始设置

    基于此,应通过上述行进行处理:


    那么它是因为参数而崩溃的吗?

    给出错误的脚本或代码是什么。您确实提供了一些链接,但很难辨别代码的位置。@RichardBarber我刚刚编辑了OP以提供完整的脚本。其他地方的一个人指出-args$f可能是问题所在,需要改为“$f”,但我试过了,但没有成功。请记住,
    “$f”
    “$f”
    不同(卷曲引号不像直引号那样有效)@RichardBarber是的,对不起,我现在在手机上,但是我检查了我对脚本的编辑,它有直接的引号。在这种情况下,我会尝试
    “${f}”
    给出错误的脚本或代码是什么。您确实提供了一些链接,但很难辨别代码的位置。@RichardBarber我刚刚编辑了OP以提供完整的脚本。其他地方的一个人指出-args$f可能是问题所在,需要改为“$f”,但我试过了,但没有成功。请记住,
    “$f”
    “$f”
    不同(卷曲引号不像直引号那样有效)@RichardBarber是的,对不起,我现在在手机上,但是我检查了脚本的编辑,它有直接的引号。在这种情况下,我会尝试
    “${f}”