我使用 python-mode.el 并且刚刚发现了 Pipenv。我可以从终端在项目环境中启动 Python,方法是首先更改为项目目录并输入“pipenv run python”。但 python-mode 想要执行一个进程,而不是一个命令字符串。
我尝试创建一个像这样的 shell 脚本:
#!/bin/bash
cd ~/myprojectdir
pipenv run python
但收到这个投诉
Warning: the environment variable LANG is not set!
We recommend setting this in ~/.profile (or equivalent) for proper expected behavior.
此变量是在我的终端环境中设置的:如何确保它是为 pipelinev 设置的?但更大的问题是,我如何在 emacs 中运行这个 pipelinenv 虚拟环境 python 来获取带有 Python 进程的缓冲区?
pipenv.el 通过设置适当的变量并在 Emacs 内的 Pipenv 周围提供一个瓷器,可以在这方面提供帮助。
看起来我必须显式地获取我的 .bashrc 文件(或等效文件)。将我的
runpipenv.sh
脚本的内容更改为此
#!/bin/bash
source ~/.bashrc
cd ~/myprojectdir
pipenv run python
(我的 .bashrc 文件设置
LANG
),然后调用
(setq py-shell-name "runpipenv.sh")
在 Emacs 中似乎可以工作。
我使用的是 Emacs 版本 29,它非常简单:
自定义这两个变量:
python-shell-interpreter
。注意,我必须使用绝对路径来让 Emacs 找到可执行文件,对我来说,该值是 /usr/bin/pipenv
。python-shell-interpreter-args
。我的价值观是run python
。