为什么在Shebang行中的Anaconda python无法找到脚本(cygwin)?

时间:2019-08-14 20:27:22

标签: python windows anaconda cygwin

我在Windows 10上使用cygwin,并且想要编写Python代码 使用我的Anaconda基地中包含的Pandas和其他软件包 环境。如果给出绝对值,我可以运行Python代码 代码的路径,但是如果bash需要使用PATH则不需要 查找代码。

我按照建议在.bash_profile中使用这些行 here(搜索“ bash_profile”):

. /opt/conda/etc/profile.d/conda.sh
conda activate base

这是我的PATH的开始,在最前面显示了Anaconda的内容:

$ echo ${PATH:1:160}
cygdrive/c/Users/Glenn/Anaconda3:/cygdrive/c/Users/Glenn/Anaconda3/Library/mingw-w64/bin:/cygdrive/c/Users/Glenn/Anaconda3/Library/usr/bin:/cygdrive/c/Users/Gle...

我可以在bash提示符下运行Anaconda Python:

$ which python
/cygdrive/c/Users/Glenn/Anaconda3/python
$ python -i
Python 3.7.3 (default, Apr 24 2019, 15:29:51) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32

Warning:
This Python interpreter is in a conda environment, but the environment has
not been activated.  Libraries may fail to load.  To activate this environment
please see https://conda.io/activation

Type "help", "copyright", "credits" or "license" for more information.
>>>

我什至可以运行一个使用Pandas的Python程序:

$ pwd
/home/Glenn/bin
$ cat test.py
#!/usr/bin/env python
import pandas as pd
print(pd.Series([1,2]))
$ ./test.py
0    1
1    2
dtype: int64

问题是如果我依赖路径,我将无法运行该程序:

$ which test.py
/home/Glenn/bin/test.py
$ test.py
C:\Users\Glenn\Anaconda3\python.exe: can't open file '/home/Glenn/bin/test.py': [Errno 2] No such file or directory
$

如果我从以下位置调用test.py,则会收到相同类型的错误消息 使用绝对路径名的另一个目录,但如果我调用,则不会 它使用相对路径名。

我是Cygwin的长期用户,还没有看到这种行为 以前,所以怀疑它与Anaconda有关。 我可以更改到任何其他目录并获得相同的行为。 另外,如果我在其中将Anaconda的Python的绝对路径放在 shebang行,我得到相同的行为。

我已经找到(并尝试过)在Cygwin环境中配置Anaconda的许多建议,但是其中许多建议已经使用了4或5年。

更新:我无法解决此问题,但已切换到Linux Windows子系统,不再需要处理此问题。

0 个答案:

没有答案