python - 在运行时更改 PYTHONUSERBASE 以从另一个用户特定位置导入模块(覆盖基本模块)
问题描述
我正在运行 Zeppelin 笔记本,但我无权更改任何配置文件。在这个笔记本中,我使用 livy.pyspark 来运行一个 pyspark 应用程序。
我也无权在主要 python 路径上使用 pip install 等。但是,我确实有一个包含我的用户库 python 包的文件夹。用户库包不在标准的 ~/.local 目录中。
通常,我使用环境变量 PYTHONUSERBASE 设置它,以确保 python 知道在哪里可以找到它并在必要时覆盖我的 anaconda 包。例如旧版本的熊猫。
我尝试了以下方法来覆盖 pythonuserbase 文件夹并重新加载它,以便它在我的基本模块之前找到我的用户库模块。但是,到目前为止,没有任何效果。
import sys
import os
import site
my_local_path = 'my/local/path'
sys.exec_prefix = my_local_path
os.environ['PYTHONUSERBASE'] = my_local_path
site.USER_BASE = None
site.USER_SITE = None
site.main()
site.USER_SITE # point to correct place but still not importing pandas correctly
解决方案
推荐阅读
- python - 在某些情况下,Django Rest Framework 允许未经身份验证的视图访问
- r - 在绘图标签的千分之一处添加逗号
- asp.net - IIS 上的 ASP.NET 重写重定向 url(用于 Facebook 社交登录)
- python - 选择数据框中的特定列并追加到新行中
- java - 我显示的 GUI 大小不一致
- ruby-on-rails - 如何在 Rails 中使用 I18n.js 和 handlebars.js
- swift - 在 Userdefaults 中保存状态
- javascript - 在加载 CGI 脚本之前等待页面加载?
- visual-studio-code - VS Code:如何水平移动选择
- google-cloud-functions - Fastify 和云功能