问题标签 [direnv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
789 浏览

jenkins - 如何自动加载特定于一个文件路径的环境变量?

我正在开发一种解决方案,以简化对失败的 Jenkins 构建的手动调试。这涉及通过 SSH 连接到正确的 Jenkins 节点并直接在 WORKSPACE 上进行,这样您就可以交互式地尝试可以解决您的问题的不同更改。

虽然我解决了在正确目录中启动 SSH 会话的问题,但缺少一点:您的 shell 缺少 Jenkins 定义的原始环境变量,这些对于之后运行任何命令至关重要。因此,构建的第一个命令不是set > .envrc将所有内容都保存到这个 shell 文件中。

我的例子是指direnv能够自动加载.envrc文件的工具。出于安全考虑,此工具不会自动加载这些文件并给出消息direnv: error .envrc is blocked. Rundirenv allowto approve its content.

所以我目前的解决方案是direnv allow在进入正确的文件夹后手动运行。

我怎样才能自动化这个,所以我不必输入这个?提示可能没问题,因为它只涉及按一个键而不是键入 ~12。

请注意,我不是被迫使用direnv自己,我对其他解决方案持开放态度。

0 投票
16 回答
23515 浏览

virtualenv - cd进入目录时如何自动激活virtualenvs

我的~/Documents. 我几乎只在 python 中工作,所以这些基本上都是 python 项目。例如,每一个~/Documents/foo都有自己的 virtualenv,~/Documents/foo/venv(它们总是被称为 venv)。每当我在项目之间切换时(每天大约 10 次),我都会这样做

我已经到了厌倦打字deactivatesource venv/bin/activate. 我正在寻找一种方法来cd ../foo为我处理 virtualenv 操作。

  • 我对VirtualEnvWrapper很熟悉,在我看来这有点笨拙。据我所知,它似乎将您所有的 virtualenvs 移动到其他地方,并且增加了比它删除的复杂性更多的复杂性。(欢迎不同意见!)

  • 我对shell脚本不太熟悉。如果您可以推荐一个低维护脚本来添加到我~/.zshrc的实现这一点,那就足够了,但是通过一些快速的谷歌搜索,我还没有找到这样的脚本。

  • 我是zsh/oh-my-zsh用户。oh-my-zsh似乎没有这个插件。这个问题的最佳答案是有人贡献了一个oh-my-zsh插件来做到这一点。(如果这里的答案乏善可陈,我可能会这样做。

0 投票
0 回答
33 浏览

xcode - make 是用 xcode 安装的吗?

背景故事:学习编码 - python web 开发。我正在尝试安装 direnv 以获得虚拟环境。它说它依赖于make and go。 https://direnv.net/

问题:我正在查找 make ,它似乎可能与 xcode 一起安装?那正确吗?

谢谢您的帮助

0 投票
2 回答
7617 浏览

docker - docker-compose .env 与 direnv .envrc

我们已经使用direnv很长一段时间来在特定文件夹中自动加载环境变量。从版本 3 开始,docker-compose 似乎支持 .env 文件

direnv 使用的.envrc文件使用export

export NODE_ENV=development

使用与 docker-compose 相同的文件似乎不起作用,只是没有export我得到变量的值。

NODE_ENV=development

关于如何将其统一为单个.env.envrc文件或 direnv 的替代方案的任何想法?

0 投票
1 回答
91 浏览

git - 使用动态签名密钥签署 Github 提交

我有一个与 2 个电子邮件地址(个人 + 工作)相关联的 Github 帐户。我只能签署来自一个帐户的提交,git config --global user.signingkey MySigningKey因为密钥与一封电子邮件相关联。

我正在使用direnv提交使用不同的电子邮件,具体取决于我所在的目录,它可以使用环境变量设置 .envrc ,例如export GIT_COMMITTER_EMAIL=someemail@gmail.com. 我想知道是否有类似的解决方案来定义动态签名密钥

0 投票
2 回答
487 浏览

direnv - 停止 direnv 在加载时显示所有环境变量

我已经direnv安装了,我想知道是否有办法阻止它显示它加载的所有环境变量?它当前显示的输出行是:

我对第一行显示很好,但是由于我的第二行中有大约 50 个变量,所以每次进入目录时都显示很多变量有点烦人。

0 投票
2 回答
5148 浏览

python - 使用 direnv 激活 virtualenv 不会激活 virtualenv

当我切换到目录时,我正在使用 direnv 来获取我的 virtualenv。

.envrc

当我将目录更改为时,/project我得到输出:

它将 env 目录添加到我的 PATH 环境变量中,因此当我运行which python并且which pip都指向我env目录中的 python 和 pip 时

然而,它似乎并没有source env/bin/activate像我期望的那样运行。我希望它通过将 virtualenv 名称 (env) 添加到我的 CLI 提示符并授予对deactivate命令的访问权限来激活我的 virtualenv,但这两种情况都不会发生。我对 direnv 和 virtualenv 的工作方式有什么误解吗?我是 python 新手,所以我不确定是否有现有的工具可以做这样的事情。

0 投票
1 回答
439 浏览

python-3.x - 使用 UWSGI、Nginx、direnv 和 systemd 部署 Flask APP

我使用 FLASK 创建了一个 API,我试图通过创建 systemd 服务将其部署在 linux 服务器上。

我已经使用 direnv 为应用程序设置输入参数,例如数据库连接。下面是文件的样子: 在此处输入图像描述

uwsgi 配置如下:

在此处输入图像描述

systemd 文件具有以下条目:

在此处输入图像描述

每当我尝试在浏览器上访问服务时,我的 uwsgi 日志中都会出现以下错误:

--- 未找到 python 应用程序,检查您的启动日志是否有错误 --- [pid: 23791|app: -1|req: -1/3] 192.168.9.180 () {44 vars in 719 bytes} [10 月 11 日星期四14:35:09 2018] GET / => 在 0 毫秒内生成 21 个字节(HTTP/1.1 500) 83 个字节中的 2 个标头(1 个在核心 0 上开关)

我的理解是 systemd 文件中的 ExecStart 命令无法调用 direnv 设置变量,因此我添加了 ExecStartPre 条目,但似乎不起作用。

任何提示/想法表示赞赏。

注意:当我从我的 python 虚拟环境中通过命令行运行 uwsgi 时,可以无错误地访问该应用程序:

uwsgi --socket 0.0.0.0:5000 --protocol=http -w app:app

0 投票
1 回答
855 浏览

macos - 为什么我无法在 macOS 上更改环境变量 $USERNAME?

我想做的事

怎么了

我尝试了什么

  • 我尝试使用:sudo...;
  • 我尝试使用:unset USERNAME

有用的注意事项

问题之前我做了什么

direnv我能够使用(https://github.com/direnv/direnv )多次更改我的环境变量,并且一切正常。

我能够在.envrc. 然后,我遇到了这个问题...


解决方案

https://unix.stackexchange.com/questions/483469/cannot-change-the-environment-variable

0 投票
1 回答
325 浏览

bash - gcloud:是否可以根据当前文件夹更改默认项目?

我正在处理几个 gcloud 项目,我厌倦了--project XYZ每次需要调用命令时都必须输入,或者更糟糕的是,如果我忘记添加命令,则在错误的项目上执行命令。