我最近为运行AmazonLinux2的开发设置了一个新的EC2示例。(https://orion-docs.prefect.io/)我必须安装SQLite3的最新版本,这是我从源代码编译的。然后我将LD_LIBRARY_PATH环境变量设置为"/usr/local/lib ",并使用LDFLAGS和CPPFLAGS编译器参数安装Python 3. 10. 5以包括该文件夹,以便python找到新的sqlite库。到目前为止一切都很好,当从终端运行jupyter notebook服务器或prefect orion服务器时,一切都工作正常。如果我想从VS Code使用集成的jupyter环境,我会遇到内核无法启动的问题:
无法启动内核。
导入错误:/home/米克尔j/. pyenv/版本/3.10.5/库/Python 3.10/动态加载库/_ sqlite3.cpython-310-x86_64-Linux-gnu.所以:未定义符号:sqlite3跟踪版本2。
这让我相信使用了系统sqlite库,因为这和我取消设置LD_LIBRARY_PATH env变量时得到的错误是一样的。但是当调用ldd /home/mickelj/.pyenv/versions/3.10.5/lib/python3.10/lib-dynload/_sqlite3.cpython-310-x86_64-linux-gnu.so
时,我得到了以下错误:
Linux操作系统-虚拟磁盘存储器
- 数据库服务器地址=〉/usr/local/lib/数据库服务器地址(0x00007f96a3339000)**
数据库地址=〉/lib64/数据库地址(0x00007f96a311b000)
数据库地址=〉/lib64/libc.so.6(0x00007f96a2d6e000)
数据库地址=〉/数据库64/数据库地址
数据库地址=〉/lib64/数据库地址(0x00007f96a2819000)
数据库地址=〉/lib64/数据库地址
/lib64/ld-linux-x86 - 64.so.2文件夹(0x00007文件夹)
新sqlite3库被正确引用的地方。如果我取消设置LD_LIBRARY_PATH变量,第二行将变为:
- 数据库配置文件=〉/数据库64/数据库配置文件(0x00007f9dce52e000)**
所以我的猜测是VS Code jupyter集成没有考虑环境变量,所以我的问题是:是否有办法在运行时或其他任何地方为VS代码或内置的jupyter服务器全局指定它们(特别是LD_LIBRARY_PATH)来解决这个问题?
2条答案
按热度按时间wlzqhblo1#
最近,jupyter正在修复与
.env
相关的问题。您可以尝试安装**
vscode insiders
和jupyter
扩展的预发行版本**。6vl6ewon2#
使用
ipykernel
创建一个带有env变量的定制内核规范,我就解决了这个问题。步骤:
1.为您的环境创建一个内核规范。
1.编辑kernelspec文件,在对象中添加env变量
您将看到如下内容:
添加
env
变量后:参考:How to set env variable in Jupyter notebook
1.将vscode中的内核更改为
myenv_ldconf
。