我正在使用 dotenv 包。我有一个保存在 .env 文件中的密钥,但我将其更新为新密钥,但我的脚本仍然输出旧密钥。我的根目录中有“.env”文件。
我认为通过使用 load_dotenv() ,它可以及时获取新密钥(无论它们处于当前状态)并将其保存以在脚本中使用。我究竟做错了什么?
import os
from dotenv import load_dotenv
import praw
load_dotenv()
reddit = praw.Reddit(client_id=os.getenv('reddit_personal_use'),
client_secret=os.getenv('reddit_api_key'),
user_agent=os.getenv('reddit_app_name'),
username=os.getenv('reddit_username'),
password=os.getenv('reddit_pw'))
Run Code Online (Sandbox Code Playgroud) 我有三个用于本地、开发和生产环境的 .env 文件,我必须在为该服务器进行部署时加载特定的环境文件,即如果我正在进行 DEV 部署,那么 dev .env 文件应该加载所有文件。
突然,在创建反应生产版本时,我收到此错误。
> safe-courier@0.1.0 build
> react-scripts build
Creating an optimized production build...
Failed to compile.
Module not found: Error: Can't resolve 'fs' in '/workspace/safe-courier/client/node_modules/dotenv/lib'
Run Code Online (Sandbox Code Playgroud)
我在网上搜索过,发现类似的案例,但框架不同,但对于这个问题都没有帮助。
我尝试卸载 dotenv 并再次重新安装,但出现相同的错误。我不确定 fs 模块是 Nodejs 的一部分并与其捆绑在一起可能会出现什么问题
我正在尝试找到使用 .env 文件设置 NestJS 数据库的最合法方法。也就是说,我想使用@nestjs/configpackage 来导入 .env 变量并在 TypeOrmModule 中使用它们。
看来我需要使用TypeOrmModule.forRootAsync.
我正在尝试这样做:
// app.module.ts
@Module({
imports: [
ConfigModule.forRoot({
isGlobal: true,
}),
TypeOrmModule.forRootAsync({
useClass: TypeOrmConfigService,
}),
...
],
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)
然后,有TypeOrmConfigService:
import { Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { TypeOrmModuleOptions, TypeOrmOptionsFactory } from '@nestjs/typeorm';
@Module({
imports: [ConfigModule],
})
export class TypeOrmConfigService implements TypeOrmOptionsFactory {
constructor(private configService: ConfigService) {}
createTypeOrmOptions(): TypeOrmModuleOptions {
return {
type: 'mysql', …Run Code Online (Sandbox Code Playgroud) 我正在尝试制作一个不和谐的机器人,当我尝试使用 load_dotenv() 加载 .env 时,它不起作用,因为它说
Traceback (most recent call last):
File "/home/fanjin/Documents/Python Projects/Discord Bot/bot.py", line 15, in <module>
client.run(TOKEN)
File "/home/fanjin/.local/lib/python3.8/site-packages/discord/client.py", line 708, in run
return future.result()
File "/home/fanjin/.local/lib/python3.8/site-packages/discord/client.py", line 687, in runner
await self.start(*args, **kwargs)
File "/home/fanjin/.local/lib/python3.8/site-packages/discord/client.py", line 650, in start
await self.login(*args, bot=bot)
File "/home/fanjin/.local/lib/python3.8/site-packages/discord/client.py", line 499, in login
await self.http.static_login(token.strip(), bot=bot)
AttributeError: 'NoneType' object has no attribute 'strip
Run Code Online (Sandbox Code Playgroud)
这是我的机器人代码:
import os
import discord
from dotenv import load_dotenv
load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')
client = discord.Client()
@client.event
async def …Run Code Online (Sandbox Code Playgroud) 我不断收到此错误:
Error: self signed certificate
在终端中运行此命令时:
knex migrate:latest --env production
Run Code Online (Sandbox Code Playgroud)
我的 knexfile.js
require('dotenv').config();
module.exports = {
development: {
client: "pg",
connection: {
host: "localhost",
database: "my-movies"
}
},
production: {
client: "pg",
connection: process.env.DATABASE_URL
}
};
Run Code Online (Sandbox Code Playgroud)
我的 .env 文件:
DATABASE_URL=<my_database_url>?ssl=true
Run Code Online (Sandbox Code Playgroud)
Heroku 应用信息:
Addons: heroku-postgresql:hobby-dev
Auto Cert Mgmt: false
Dynos:
Git URL: https://git.heroku.com/path-name.git
Owner: xxxxxxxxx@xxxx.com
Region: us
Repo Size: 0 B
Slug Size: 0 B
Stack: heroku-18
Web URL: https://my-appname.herokuapp.com/
Run Code Online (Sandbox Code Playgroud)
我试过在 ssl: true 的 knexfile 的生产中放置一个键值对,但我得到了同样的错误。我过去已经这样做过很多次了,从来没有遇到过这个问题。想知道 Heroku 是否改变了任何东西,但在搜索他们的文档时我找不到任何东西。
我一直在尝试找出在 Svelte App 中为 API 配置实现环境变量的最佳实践。据我所知,我们必须使用 Vite 或 Svite 才能使其工作。谁能帮我找到解决方案吗?
我正在构建一个 Electron、React 应用程序,我需要一个dotenv文件。在代码中,我调用我的变量,process.env.variable这些变量在开发中工作得很好。
然而,一旦与 一起分发electron-builder,则dotenv variables不再起作用 ( undefined)。
我现在的问题是,是否可以做到这一点?如果可以,怎么做?我试图在互联网上找到解决方案,但似乎人们并没有真正面对这个问题。
我正在尝试在 pycharm edu 上安装 dotenv 包,但不断收到错误消息“AttributeError: module 'importlib._bootstrap' has no attribute 'SourceFileLoader'”
我试图通过以 root 用户身份运行命令“pip install --user dotenv”来使用 python 终端解决这个问题,但仍然遇到相同的错误
命令输出如下
Collecting dotenv
Using cached https://files.pythonhosted.org/packages/e2/46/3754073706e31670eed18bfa8a879305b56a471db15f20523c2427b10078/dotenv-0.0.5.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 154, in save_modules
yield saved
File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 194, in setup_context
__import__('setuptools')
File "/tmp/easy_install-vzgpp8in/distribute-0.7.3/setuptools/__init__.py", line 2, in <module>
File "/tmp/easy_install-vzgpp8in/distribute-0.7.3/setuptools/extension.py", line 5, in <module>
File "/tmp/easy_install-vzgpp8in/distribute-0.7.3/setuptools/dist.py", line 7, in <module>
File "/tmp/easy_install-vzgpp8in/distribute-0.7.3/setuptools/command/__init__.py", line 8, in <module>
File "/tmp/easy_install-vzgpp8in/distribute-0.7.3/setuptools/command/install_scripts.py", line …Run Code Online (Sandbox Code Playgroud) 我尝试了一些实现,但没有成功。
eval在 package.json 脚本中使用"fetch:data": "eval $(cat .env) ts-node -O '{\"module\":\"commonjs\"}' ./bin/build-api-data.ts"。
这会导致 JSON 解析错误,因为 eval 由于某种原因删除了我的引号。
undefined:1
{module:commonjs}
^
SyntaxError: Unexpected token m in JSON at position 1
Run Code Online (Sandbox Code Playgroud)
使用 dotenv,我在这里遇到的问题是竞争条件导致如下错误:
$ CANDID_ENV=local ts-node -O '{"module":"commonjs"}' ./bin/build-api-data.ts
/Users/lassiter.gregg/code/candidco-web/node_modules/contentful/dist/webpack:/contentful/contentful.js:49
throw new TypeError('Expected parameter accessToken')
^
TypeError: Expected parameter accessToken
Run Code Online (Sandbox Code Playgroud)
代码示例
undefined:1
{module:commonjs}
^
SyntaxError: Unexpected token m in JSON at position 1
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,我尝试dotenv.config在文件顶部、init 和函数中进行操作,如您所见。它总是抛出相同的错误,即 contentful 未获取所需的环境变量。也就是说,如果我记录process.env并注释掉相关的代码,fetchApiData那么我会看到所有的环境变量。这就是为什么我认为这是比赛时的情况,但无法找到与我自己的问题类似的任何东西。
此外,更棘手的是,这是一个必须在 Node 和 esnext 环境中工作的自定义脚本。因此,我使用我不太喜欢的语法遇到了棘手的导入/导出问题,但还没有找到解决方法(例如 …