Python 使用docker compose build时出现错误:uuu init_uuu()获取了意外的关键字参数';内插';
我是docker新手,在运行Python 使用docker compose build时出现错误:uuu init_uuu()获取了意外的关键字参数';内插';,python,flask,dotenv,Python,Flask,Dotenv,我是docker新手,在运行docker compose build命令时,我遇到了这个错误 回溯(最近一次呼叫最后一次): 文件“/home/ghostface/playway/bootcamp/venv/bin/docker compose”,第11行,在 sys.exit(main()) 文件“/home/ghostface/playway/bootcamp/venv/lib/python3.6/site packages/compose/cli/main.py”,第72行,在main中
docker compose build
命令时,我遇到了这个错误
回溯(最近一次呼叫最后一次):
文件“/home/ghostface/playway/bootcamp/venv/bin/docker compose”,第11行,在
sys.exit(main())
文件“/home/ghostface/playway/bootcamp/venv/lib/python3.6/site packages/compose/cli/main.py”,第72行,在main中
命令()
文件“/home/ghostface/playdy/bootcamp/venv/lib/python3.6/site packages/compose/cli/main.py”,第125行,在perform_命令中
项目=项目来自项目选项('.',选项)
文件“/home/ghostface/playway/bootcamp/venv/lib/python3.6/site packages/compose/cli/command.py”,第76行,项目中的
环境文件=环境文件
文件“/home/ghostface/playway/bootcamp/venv/lib/python3.6/site packages/compose/cli/command.py”,第135行,在get_项目中
config\u data=config.load(配置详细信息、兼容性、插值)
文件“/home/ghostface/playdey/bootcamp/venv/lib/python3.6/site packages/compose/config/config.py”,第411行,已加载
服务目录=加载服务(配置详细信息、主文件、兼容性、插值=插值)
文件“/home/ghostface/playway/bootcamp/venv/lib/python3.6/site packages/compose/config/config.py”,第510行,加载服务
返回生成服务(服务配置)
文件“/home/ghostface/playdy/bootcamp/venv/lib/python3.6/site packages/compose/config/config.py”,第491行,内置服务
对于名称,在service_config.items()中输入service_dict
文件“/home/ghostface/playdy/bootcamp/venv/lib/python3.6/site packages/compose/config/config.py”,第491行,在
对于名称,在service_config.items()中输入service_dict
文件“/home/ghostface/playdey/bootcamp/venv/lib/python3.6/site packages/compose/config/config.py”,第483行,内置服务
插入
文件“/home/ghostface/playdy/bootcamp/venv/lib/python3.6/site packages/compose/config/config.py”,第888行,在finalize_服务中
服务目录['environment']=解析目录环境(服务目录,环境,插值)
文件“/home/ghostface/playdy/bootcamp/venv/lib/python3.6/site packages/compose/config/config.py”,第687行,在resolve_环境中
更新环境(来自环境文件的环境变量(环境文件,插值))
文件“/home/ghostface/playdy/bootcamp/venv/lib/python3.6/site packages/compose/config/environment.py”,第42行,位于env_vars_from_文件中
env=dotenv.dotenv_值(dotenv_路径=filename,encoding='utf-8-sig',interpolate=interpolate)
文件“/home/ghostface/playdey/bootcamp/venv/lib/python3.6/site packages/dotenv/main.py”,第283行,在dotenv_值中
return DotEnv(f,verbose=verbose,**kwargs).dict()
TypeError:\uuuu init\uuuuuuuuuu()获得意外的关键字参数“interpolate”
docker编写版本的结果
docker compose版本1.26.0,构建未知docker py版本:4.2.1
CPython版本:3.6.8
OpenSSL版本:OpenSSL 1.1.1c 2019年5月28日 Requirement.txt文件:
Flask==1.1.1
Flask-Login==0.4.1
Flask-Mail==0.9.1
Flask-Migrate==2.5.2
Flask-Moment==0.9.0
Flask-SQLAlchemy==2.4.0
Flask-WTF==0.14.2
pusher==2.1.4
PyJWT==1.7.1
pylint==2.3.1
python-dotenv==0.10.3
Werkzeug==0.16.1
gunicorn
docker-compose
容器中的代码使用比中添加的
requirements.txt
文件中列出的版本更新的python dotenv
您需要将requirements.txt
中的版本更改为0.11.0
(或最新版本),然后重新安装依赖项
您的容器似乎使用了一个。您可能需要通过在
Dockerfile
中运行pip install
,或者事先在本地运行它来检查容器中的依赖项是否正确更新。这是docker compose错误还是容器构建错误?无论在哪个映像中使用的是python dotenv
包,都与后者非常相似。@amiasato在构建映像时出现此错误。出现此错误的原因似乎是虚拟环境中较旧版本的python dotenv
库-此参数是最近添加的。你能分享一些关于该应用程序的更多信息吗,即依赖项是如何列出的?我假设有一个名为requirements.txt
的文件。然后通过source venv/bin/activate
激活虚拟环境,然后运行pip install-r requirements.txt
应该会有帮助。@NickShebanov thanx,这解决了我的问题,似乎venv
文件夹在不同的文件夹中。很高兴听到这个消息!在任何情况下,我建议了一个解决方案,如果您在类似设置中遇到任何问题,您可能希望在将来使用该解决方案。