在哪里保存我的自定义脚本,以便我的python脚本可以访问默认目录中的模块?

alv*_*vas 17 python directory import native

这将是一个多部分的问题,但最终的目标是我可以访问定制的模块/库/函数,就像我在本机python中一样.

pip存储非本地但安装的python库的位置以及如何配置我的解释器/ IDE来访问它们?

我的用户脚本全部以:

#!/usr/bin/env python -*- coding: utf-8 -*- 
Run Code Online (Sandbox Code Playgroud)

访问/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
Run Code Online (Sandbox Code Playgroud)

有没有地方存储我的自定义脚本,以便它像本机库一样导入?如果是的话,在哪里?有什么后果?

dg9*_*g99 15

好吧,你问了很多问题; 我将解决主题行中的问题.

您可以将Python模块文件放在任何您想要的位置import,只要它们位于模块搜索路径中,它们就没有任何问题.您可以通过PYTHONPATH在调用Python之前更改shell中的环境变量,或者通过更改代码中的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
Run Code Online (Sandbox Code Playgroud)

然后是陈述

import module_x
import foo
Run Code Online (Sandbox Code Playgroud)

应该只是工作.

或者,您可以在代码中执行以下操作:

#!/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
Run Code Online (Sandbox Code Playgroud)

这两种方法都有效.