这将是一个多部分的问题,但最终的目标是我可以访问定制的模块/库/函数,就像我在本机python中一样。
存储非本地但pip
安装的python库的位置以及如何配置我的解释器/ IDE以访问它们?
我的用户脚本全部以:
开头#!/usr/bin/env python -*- coding: utf-8 -*-
从/usr/bin
和/usr/bin/env
访问之间有什么区别,应该像原生python模块/包一样导入的定制模块是否有效?
我的自定义脚本应该成为包吗?如果是这样,我如何制作用户端代码,检查ImportError
并在try-except
?中安装/设置这些软件包。
try:
import module_x
except ImportError:
# Install package, but how to do it within the script?
pass
是否有存储我的自定义脚本的地方,以便它像本机库一样导入?如果是,那么在哪里?有什么后果?
答案 0 :(得分:15)
嗯,你问了很多问题;我将解释主题行中的那个。
您可以将Python模块文件放在任何您想要的位置,只要它们位于您的module search path中,它们仍然可以import
毫无问题。您可以在调用Python之前更改shell中的环境变量PYTHONPATH
,或者通过更改代码中的sys.path变量来影响模块搜索路径。
因此,如果您安装了/home/alvas/python/lib/module_x.py
和/usr/local/python/lib/foo.py
,则可以运行:
PYTHONPATH=/home/alvas/python/lib:/usr/local/python/lib /home/alvas/scripts/bar.py
然后是陈述
import module_x
import foo
应该只是工作。
或者你可以在你的代码中做这样的事情:
#!/usr/bin/env python
import sys
sys.path.append('/home/alvas/python/lib')
import module_x
sys.path.append('/usr/local/python/lib')
import foo
任何一种方法都可行。