首先,它适用于我的工作计算机,但不能在我的家用台式机上运行。 其次,我已经探索过几个以前的答案,没有运气。也许我只是没有读过有我解决方案的那个。
我想从任何地方运行一个可执行的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
答案 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"