python无法打开文件... [Errno 2]没有这样的文件或目录

时间:2016-11-11 03:23:57

标签: bash python-2.7 command-line cygwin execute

首先,它适用于我的工作计算机,但不能在我的家用台式机上运行。 其次,我已经探索过几个以前的答案,没有运气。也许我只是没有读过有我解决方案的那个。

我想从任何地方运行一个可执行的python脚本(它需要一个字符串参数)。我的解决方案是在.bashrc中使用bash别名:

我尝试了几种变体:

alias tlog="~/projects/tlog/tlog.py"
alias tlog="/c/cyg/home/<my_username>/projects/tlog/tlog.py"
alias tlog="C:\\cyg\\home\\<my_username>\\projects\\tlog\\tlog.py"
alias tlog='"/c/cyg/home/<my_username>/projects/tlog/tlog.py"'
alias tlog='"C:\\cyg\\home\\<my_username>\\projects\\tlog\\tlog.py"'
alias tlog="python ~/projects/tlog/tlog.py"

它们都不起作用,各自的输出是:

C:\Python27\python.exe: can't open file '/home/<my_username>/projects/tlog/tlog.py': [Errno 2] No such file or directory
C:\Python27\python.exe: can't open file '/c/cyg/home/<my_username>/projects/tlog/tlog.py': [Errno 2] No such file or directory
bash: C:cyghome<my_username>projectstlogtlog.py: command not found
C:\Python27\python.exe: can't open file '/c/cyg/home/<my_username>/projects/tlog/tlog.py': [Errno 2] No such file or directory
bash: C:\cyg\home\<my_username>\projects\tlog\tlog.py: command not found
C:\Python27\python.exe: can't open file '/home/<my_username>/projects/tlog/tlog.py': [Errno 2] No such file or directory

因此,为了进行健全性检查,我这样做了:

$ cd ~/projects/tlog
$ ls
logs  prev_log_date  tlog.py

是吗?那么它会运行吗?

$ ./tlog.py "TEST"
yadda yadda it worked

是的,现在:

$ ~/projects/tlog/tlog.py "TEST"
C:\Python27\python.exe: can't open file '/home/<my_username>/projects/tlog/tlog.py': [Errno 2] No such file or directory

那么......

$ more ~/projects/tlog/tlog.py
#!/usr/bin/env python
"""
tlog - tlog docstring
"""
...rest of file...
是的,它还在那里。有人给我一个答案吗? 供参考:

$ ls -la
...more files...
-rwxrwxr-x+ 1 <my_username> <my_username> 6376 Nov 10 17:59 tlog.py
$ cd ..
$ ls -la
...more files...
drwxr-xr-x+ 1 <my_username> <my_username> 0 Nov 10 17:59 tlog
$ python --version
Python 2.7.10

1 个答案:

答案 0 :(得分:1)

看起来你使用的是基于Windows的python,而不是基于cygwin的python

检查是否安装了cygwin python

ls /bin/python*

如果您没有cygwin python,请安装它。

如果你已经安装了cygwin python,那么检查你的PATH变量 - cygwin / bin /文件夹必须在windows python文件夹之前去。

如果你真的需要使用来自cygwin的windows python ...阅读很多关于'来自cygwin的windows python' - 有大量的小故障,特殊情况和不可预测的行为

另外,你可以尝试这样的别名:(不能自己检查)

alias tlog="cmd.exe C:\\Python27\\python.exe -i C:\\cyg\\home\\<my_username>\\projects\\tlog\\tlog.py"
相关问题