我想将我的Python脚本放入PATH中列出的目录中,并通过从Windows上cygwin中的任何位置键入其名称来调用该脚本。
我在用人妖
#!/usr/bin/env python
这在Linux机器上运行得非常好。
然而,通过从windows cygwin调用以下行,我得到一个错误:
$ my_script.py some arguments
C:\app\Python36\python.exe: can't open file '/cygdrive/d/11_scripts/my_script.py': [Errno 2] No such file or directory
问题的原因是cygwin扩展了脚本路径,python不理解cygwin装载驱动器的方式:/cygwin/d/。。。当我以完整路径(win格式)或相对路径运行脚本时,它会工作。
$ d:/11_scripts/my_script.py some arguments
你知道任何解决方法吗?这里讨论了类似的问题:通过Cygwin运行Python脚本的问题,但我想使用PATH。
非常感谢。
另外:目前我使用的bash包装器脚本被放入路径:
#!/usr/bin/bash
pypath='/cygdrive/c/app/Python36/python'
$pypath -u 'd:\11_scripts\my_script.py' $@
你在跑步
C:\app\Python36\python.exe
它是一些原生的Windows Python,而不是Cygwin的Python,编译后使用Cygwin。所以自然它对Cygwin路径一无所知。
如果您想使用Cygwin中的Python,最好的选择是只使用Cygwin附带的Python。
如果您绝对必须使用Cygwin的原生Windows Python(您可以这样做,我偶尔有理由这样做,例如测试打算在Python for Windows上运行的代码,例如使用msvcrt模块),您可以这样做。但您仍然需要将任何文件系统路径转换为原生Windows路径。在Cygwin中,您可以使用cygpath命令来执行此操作,例如
$ cygpath -w -a /cygdrive/d/whatever
D:\whatever
包装传递给Python的任何文件路径,例如
$ C:/Python36/python.exe "$(cygpath -w -a /cygdrive/d/whatever)"
如果您需要经常这样做,您可以制作一个包装脚本。
我有一堆shell脚本,以前是在Linux机器上运行的。现在,我们已经切换到Windows,我需要在那里运行这些脚本。我已经安装了Cygwin,但是有没有一种方法可以让脚本使用Cygwin运行,但是调用是从Windows批处理中进行的呢?
问题内容: 我有一个Windows 7系统,上面安装了最新的Java编译器。我也有最新的Cygwin。我想使用Cygwin外壳程序中的Java编译器。我在Cygwin中编辑了PATH变量,如下所示: 我可以在上面的目录中看到二进制文件,但是当我尝试编译我的* .java文件时,我得到了: 在像这样设置PATH变量时我做错了吗?我还需要做其他事情吗?我是Java新手,对cygwin不太熟悉。 问题答
问题内容: 我有一个在Linux上运行的Python(3)脚本,称为主脚本,该脚本必须从专有DLL调用例程。到目前为止,我已经使用Wine使用以下结构解决了这个问题: 脚本 dll_call.py 由Wine下安装的Windows Python(3)解释器执行。它将返回值转储到一个文件中,然后由等待的主脚本拾取该文件。如果我必须连续执行几次,它不是完全可靠且令人痛苦的缓慢。 我想一次启动脚本 dl
问题内容: 我有一个脚本,可以创建网站并动态打印一些数据。-打印的数据应来自另一个python脚本。 我目前面临的问题是,如果我将执行python脚本的行放在执行应用程序的行之前,它将运行Python脚本而不运行;反之亦然。 Python脚本: Flask脚本(注意:价格应为其他脚本的“解析”变量): 问题答案: 使用: 将python脚本(例如)生成的内容包装到函数中。 将其放置在与或相同的目录
问题内容: 我不知道应该把我的Spider代码放在哪里以及如何从main函数中调用它。请帮忙。这是示例代码: 问题答案: 所有其他答案均参考Scrapyv0.x。根据更新的文档,Scrapy 1.0要求:
我有一个PHP脚本位于我的$PATH变量的文件夹中。脚本的第一行如下: 当我在bash中通过提供脚本的路径来执行此脚本时(例如) 或者使用PHP CLI程序执行它: 脚本以预期的输出正常运行。如果我执行以下操作,它也可以正常运行: 但是,如果我尝试在没有PHP CLI程序的情况下运行脚本,并且没有指定脚本的路径,脚本就不会运行。 有人知道为什么吗? 编辑:这是失败的调用: 无论我是否与脚本位于同一