类似的问题在这里。正如其他人所建议的那样,在变量/opt/ros/kinetic/setup.bash
中附加到 ROS opencv 的路径。PYTHONPATH
如果您正在使用多个virtualenv
s 并且您需要一个适用于大多数情况的解决方案,那么您可以将以下代码片段放入您的.bashrc
:
source /opt/ros/kinetic/setup.bash
array=( $(find ~/.virtualenvs/ -mindepth 1 -maxdepth 1 -type d) )
for i in "${array[@]}"
do
export PYTHONPATH="$i/lib/python2.7/site-packages:$PYTHONPATH"
done
所以想法是,如果你有一个集中的所有virtualenv
s 目录(例如,当你使用 时virtualenvwrapper
),我们可以使用以下方法搜索这些目录:
$(find ~/.virtualenvs/ -mindepth 1 -maxdepth 1 -type d)
鉴于我们所有的virtualenv
s 都在~/.virtualenvs
. 这应该给我们一个我们所有virtualenv
的根目录的列表。
然后,我们循环遍历 virtualenv 目录数组,并将它们的路径(例如~/.virtualenvs/testenv/lib/python2.7/site-packages
)附加到PYTHONPATH
. 请注意,这应该在source /opt/ros/kinetic/setup.bash
.
这不是问题的完美解决方案,因为如果两个 env 具有不同的 opencv 版本,您仍然会发生冲突,但对于最初的问题,至少它应该可以工作。
或者,您可以手动对所需的 virtualenv 执行相同的技巧:
export PYTHONPATH=~/.virtualenvs/testenv/lib/python2.7/site-packages:$PYTHONPATH