Protocol buffers nanopb-generator.py给出错误“;makedirs()得到一个意外的关键字参数';存在正常'&引用;

Protocol buffers nanopb-generator.py给出错误“;makedirs()得到一个意外的关键字参数';存在正常'&引用;,protocol-buffers,nanopb,Protocol Buffers,Nanopb,我已经用python3创建了一个virtualenv。在虚拟环境中,我的文件夹中有2个proto文件以及nanopb包。结构是 . ├── api.pb ├── api.proto ├── bin ├── compile.sh ├── include ├── lib ├── nanopb-0.4.2-linux-x86 └── types.proto 作为第一步,我使用命令将types.proto和api.proto编译成api.pb ./nanopb-0.4.2-linux-x86/gene

我已经用python3创建了一个virtualenv。在虚拟环境中,我的文件夹中有2个proto文件以及nanopb包。结构是

.
├── api.pb
├── api.proto
├── bin
├── compile.sh
├── include
├── lib
├── nanopb-0.4.2-linux-x86
└── types.proto
作为第一步,我使用命令将types.proto和api.proto编译成api.pb

./nanopb-0.4.2-linux-x86/generator-bin/protoc -I=./nanopb-0.4.2-linux-x86/generator/proto -I=. api.proto -o api.pb
生成pb文件后,我执行以下命令

python nanopb-0.4.2-linux-x86/generator/nanopb_generator.py /home/ankit/Desktop/api/venv-proto-3/api.pb
这会产生以下错误

(venv-proto-3) ankit@ankit-desktop:~/.../api/venv-proto-3$ python nanopb-0.4.2-linux-x86/generator/nanopb_generator.py /home/ankit/Desktop/api/venv-proto-3/api.pb
Writing to api.pb.h and api.pb.c
Traceback (most recent call last):
  File "nanopb-0.4.2-linux-x86/generator/nanopb_generator.py", line 2122, in <module>
    main_cli()
  File "nanopb-0.4.2-linux-x86/generator/nanopb_generator.py", line 2034, in main_cli
    os.makedirs(os.path.dirname(path), exist_ok=True)
  File "/home/ankit/Desktop/api/venv-proto-3/lib/python3.5/os.py", line 241, in makedirs
    mkdir(name, mode)
FileNotFoundError: [Errno 2] No such file or directory: ''
(venv-proto-3) ankit@ankit-desktop:~/.../api/venv-proto-3$ 
(venv-proto-3)ankit@ankit-桌面:~/…/api/venv-proto-3$python nanopb-0.4.2-linux-x86/generator/nanopb_generator.py/home/ankit/desktop/api/venv-proto-3/api.pb
写入api.pb.h和api.pb.c
回溯(最近一次呼叫最后一次):
文件“nanopb-0.4.2-linux-x86/generator/nanopb_generator.py”,第2122行,在
main_cli()
文件“nanopb-0.4.2-linux-x86/generator/nanopb_generator.py”,第2034行,在main_cli中
os.makedirs(os.path.dirname(path),exist\u ok=True)
makedirs中的文件“/home/ankit/Desktop/api/venv-proto-3/lib/python3.5/os.py”,第241行
mkdir(名称、模式)
FileNotFoundError:[Errno 2]没有这样的文件或目录:“”
(venv-proto-3)ankit@ankit-桌面:~/…/api/venv-proto-3$
你知道我做错了什么吗。对protobuf来说是个新鲜事


谢谢

对不起,这是0.4.2版本中的一个错误。作为一种解决方法,您可以像Azeem建议的那样添加
--output\u dir=。

我已将其添加到问题跟踪程序中:


我错过了单元测试中最基本的用例,这真是太傻了。

对不起,这是0.4.2版本中的一个bug。作为一种解决方法,您可以像Azeem建议的那样添加
--output\u dir=。

我已将其添加到问题跟踪程序中:


我在单元测试中错过了最基本的情况,这很愚蠢。

尝试:
//nano\u generator.py--output\u dir=//api.pb
Try:
//nano\u generator.py--output\u dir=//api.pb
@Ankit如果您能从中尝试最新版本将非常有用。@Ankit如果您能从中尝试最新版本将非常有用。