我写了一个python程序.如果我像这样一个shebang:
#!/usr/bin/python
Run Code Online (Sandbox Code Playgroud)
我用以下文件使文件可执行:
$ chmod 755 program.py
Run Code Online (Sandbox Code Playgroud)
我可以像这样运行程序:
$ ./program.py
Run Code Online (Sandbox Code Playgroud)
这是问题所在.我使用conda虚拟环境.当我运行上面的程序时,系统会创建一个不识别活动环境的子shell:
(my_env) $ ./program.py
ImportError: No module named pymongo
Run Code Online (Sandbox Code Playgroud)
如果我这样做,不过......
(my_env) $ python program.py
# blah blah... runs great
Run Code Online (Sandbox Code Playgroud)
如何在子shell中指定正确的环境?可能吗?我想保存我的手指输入六个字符串的努力python.
另一篇文章,在conda管理环境中的Shebangs,简要介绍了这一点,但没有提供正确的答案.它只是说,而不是激活子shell中的环境,继续忽略shebang ...只需使用$ python program.py语法.