Jetson TX1安装cplex遇问题:无匹配版本及模块缺失求助
在Jetson TX1(Ubuntu 18)上安装CPlex遇到的问题
我曾见过类似问题但未能解决,目前尝试在运行Ubuntu 18的Jetson TX1上安装CPlex,遇到以下问题:
1. pip install cplex 报错
执行命令后出现如下错误:
$ pip install cplex Collecting cplex Cache entry deserialization failed, entry ignored Could not find a version that satisfies the requirement cplex (from versions: ) No matching distribution found for cplex
2. 我的Python环境信息
$ which python /home/ubuntu/c4aarch64_installer/bin/python $ python3 --version (same for python --version) Python 3.7.2 $ python -c "import sys; print(sys.path)" ['', '/opt/ros/melodic/lib/python2.7/dist-packages', '/home/ubuntu/c4aarch64_installer/lib/python37.zip', '/home/ubuntu/c4aarch64_installer/lib/python3.7', '/home/ubuntu/c4aarch64_installer/lib/python3.7/lib-dynload', '/home/ubuntu/c4aarch64_installer/lib/python3.7/site-packages'] $ echo $PYTHONPATH /opt/ros/melodic/lib/python2.7/dist-packages
3. 手动尝试安装后的报错
我下载了cplex-22.1.1.1-cp311-cp311-manylinux1_x86_64.whl并解压,将cplex文件夹从cplex-22.1.1.1/cplex-22.1.1.1.data/purelib移动到Jetson TX1的$PYTHONPATH路径下。之后执行:
$ python3 >>> import cplex
出现报错:
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/ubuntu/cplex-22.1.1.1/cplex-22.1.1.1.data/purelib/cplex/__init__.py", line 44, in <module> from .aborter import Aborter File "/home/ubuntu/cplex-22.1.1.1/cplex-22.1.1.1.data/purelib/cplex/aborter.py", line 13, in <module> from ._internal import _procedural as _proc File "/home/ubuntu/cplex-22.1.1.1/cplex-22.1.1.1.data/purelib/cplex/_internal/__init__.py", line 20, in <module> from . import _list_array_utils File "/home/ubuntu/cplex-22.1.1.1/cplex-22.1.1.1.data/purelib/cplex/_internal/_list_array_utils.py", line 14, in <module> from . import _pycplex as CPX File "/home/ubuntu/cplex-22.1.1.1/cplex-22.1.1.1.data/purelib/cplex/_internal/_pycplex.py", line 13, in <module> from . import _pycplex_platform File "/home/ubuntu/cplex-22.1.1.1/cplex-22.1.1.1.data/purelib/cplex/_internal/_pycplex_platform.py", line 22, in <module> from cplex._internal.py37_cplex2211 import * ModuleNotFoundError: No module named 'cplex._internal.py37_cplex2211'
编辑补充:我已卸载ROS,并将Python路径设置为/home/ubuntu/c4aarch64_installer/lib/python3.7/site-packages,不确定此操作是否正确。
解决方法
问题根源
- PyPI上没有适配Jetson TX1的ARM64(aarch64)架构的CPlex包,所以
pip install直接失败。 - 你下载的
cplex-22.1.1.1-cp311-cp311-manylinux1_x86_64.whl是针对x86_64架构、Python3.11版本的,和你的Python3.7+aarch64环境完全不兼容,因此缺少对应的底层编译模块。
具体解决步骤
下载适配版本的CPlex Optimization Studio
- 前往IBM官方渠道下载支持Linux ARM64架构、且适配Python3.7的CPlex Optimization Studio版本(建议选择和你尝试的22.1.1.1同系列的版本,确保兼容性)。
- 注意:CPlex的Python绑定是随Studio安装包一起提供的,无法单独从PyPI获取适配ARM的版本。
安装Python绑定
- 完成CPlex Studio安装后,找到安装目录下的Python模块路径,通常类似
/opt/ibm/ILOG/CPLEX_Studio2211/python。 - 进入对应Python3.7和aarch64架构的子目录(比如
cplex/python/3.7/aarch64_linux)。 - 在该目录下执行以下命令完成安装:
或者使用pip install .setup.py:python setup.py install
- 完成CPlex Studio安装后,找到安装目录下的Python模块路径,通常类似
确认环境路径优先级
- 确保你的目标Python环境的
site-packages目录在sys.path中优先级最高,避免其他旧路径干扰。可以执行以下命令临时设置:
如果需要永久生效,可以将该命令添加到export PYTHONPATH=/home/ubuntu/c4aarch64_installer/lib/python3.7/site-packages:$PYTHONPATH~/.bashrc文件中。
- 确保你的目标Python环境的
验证安装
- 打开Python终端,执行
import cplex,如果没有报错则说明安装成功。
- 打开Python终端,执行
内容的提问来源于stack exchange,提问作者Curious
相关产品推荐
相关产品推荐

