Ubuntu16.04下如何为Python3安装omniORB?配置后导入失败求助
解决omniORB在Python3中导入失败的问题
看起来你遇到的问题是omniORB能在Python2.7正常运行,但指定Python3配置后,导入时提示ImportError: No module named 'omniORB'。结合你提供的configure输出和环境信息,我们可以一步步排查解决:
1. 确保完成完整的编译安装流程
你只提到执行了../configure PYTHON=/usr/bin/python3,但configure只是生成编译配置,必须执行后续的编译和安装步骤才能让Python3识别到omniORB:
# 先清理之前的编译残留(如果之前编译过Python2版本) make clean && make distclean # 重新指定Python3配置,建议加上--prefix明确安装路径(和Python2版本一致方便管理) ../configure PYTHON=/usr/bin/python3 --prefix=/usr/local # 编译并安装(需要sudo获取系统目录的写入权限) make sudo make install
2. 验证安装文件是否存在
根据configure的输出,omniORB会被安装到/usr/local/lib/python3.5/site-packages目录下。你可以检查这个目录是否存在omniORB相关文件:
ls /usr/local/lib/python3.5/site-packages | grep omniORB
如果没有看到相关的.so或.py文件,说明安装过程可能出错了,需要重新执行编译安装步骤,留意终端是否有报错信息。
3. 配置环境变量
和Python2一样,Python3也需要能找到omniORB的动态库和模块路径:
- 设置动态库路径:
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH - 确保Python3能找到site-packages目录(如果默认没包含的话):
export PYTHONPATH=/usr/local/lib/python3.5/site-packages:$PYTHONPATH
你可以把这两行添加到~/.bashrc文件中,这样每次终端启动都会自动加载这些环境变量。
4. 验证Python3的模块路径
在Python3交互环境中检查sys.path是否包含omniORB的安装目录:
import sys print(sys.path)
如果/usr/local/lib/python3.5/site-packages不在输出列表里,你可以临时添加它来测试:
sys.path.append('/usr/local/lib/python3.5/site-packages') import omniORB # 现在应该能成功导入了
额外注意事项
- 确保Python3的开发包已安装:执行
sudo apt-get install python3-dev后再重新编译,避免因依赖缺失导致安装失败。 - 避免同时安装Python2和Python3版本的omniORB时出现冲突,建议每次编译前都清理残留文件。
内容的提问来源于stack exchange,提问作者Marvin Noll
相关产品推荐
相关产品推荐

