Python 找不到 protobuf 文件

Python cannot find protobuf file

我有一些已编译的 ProtoBuf classes,我正在尝试使用 REPL。但是,尝试导入基本消息 class 时失败,因为它试图拉入其中一个子 classes:

phrogz:~$ ll lib/*.py
-rw-r--r-- 1 phrogz phrogz  8570 Oct  7 15:08 lib/api_pb2.py
-rw-r--r-- 1 phrogz phrogz 30433 Oct  7 15:08 lib/bar_pb2.py
-rw-r--r-- 1 phrogz phrogz 22333 Oct  7 15:08 lib/foo_pb2.py
-rw-r--r-- 1 phrogz phrogz 21681 Oct  7 15:08 lib/jam_pb2.py
-rw-r--r-- 1 phrogz phrogz  6739 Oct  7 15:08 lib/jim_pb2.py
-rw-r--r-- 1 phrogz phrogz     0 Jul 28 11:26 lib/__init__.py

phrogz:~$ python3
Python 3.4.3 (default, Oct 14 2015, 20:28:29)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.

>>> from lib import api_pb2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/phrogz/lib/api_pb2.py", line 16, in <module>
    import bar_pb2 as bar__pb2
ImportError: No module named 'bar_pb2'

我需要修改什么才能让大家知道去lib目录里找?

一种方法是在进入 REPL 之前设置 PYTHONPATH 环境变量以包含 lib 目录,例如

phrogz:~$ export PYTHONPATH=$PYTHONPATH:./lib
phrogz:~$ python3