用户可以在包含自己的Python脚本的目录中执行MyPython应用程序。如果这些脚本中的任何一个的名称与我的程序使用的库模块冲突(甚至与我的模块名称冲突),则所有脚本都会出现一条没有帮助的错误消息
我知道Python(从3.4开始)有-I
开关,这使得导入机器忽略当前目录(即""
不会被添加到sys.path
)。这几乎可以解决我的问题,但它的副作用是忽略用户站点包
我知道我可以在我的程序加载后调整sys.path
,但是如果用户(无意中)隐藏了我程序的主模块,这将不会有帮助
我可以让Python忽略当前目录,但同时给我用户站点包吗
Tags:
您可以通过调用
site.addusersitepackages(None)
重新启用用户站点路径(None
的简单意思是:检查现有的sys.path
定义以避免添加重复的路径):快速演示:
虽然
site.addusersitepackages()
未记录,但它是site.main()
的关键组成部分,是also quite simple。如果您觉得无法依赖它的持续存在,请按如下方式重新实现:这个版本完全省略了} 、^{} 和^{}
known_paths
参数,并且只使用记录在案的site
属性和函数:^{或者,将上述内容折叠到代码中以启用用户站点目录,包装为函数:
相关问题 更多 >
编程相关推荐