Python 从 python2.7 表现 运行 而不是 python3.4

Python behave running from python2.7 rather than python3.4

当我 运行 表现得像 运行 来自 python2.7 并且找不到为 python3.4 安装的 selenium。我是否需要在某处将行为配置为 运行 python3.4 - 我在 behave site 或其他地方看不到任何内容。有关于在 python 3.4 中使用 behave 的帖子,所以这是可能的。

这是我看到的:

$ behave 
...
 File "/usr/local/lib/python2.7/dist-packages/behave/runner.py", line 304, in exec_file
    exec(code, globals, locals)
  File "features/steps/home_page.py", line 2, in <module>
    from selenium import webdriver
ImportError: No module named selenium

我有 PYTHONPATH 指向 python 3.4/dist-packages:

$ echo $PYTHONPATH
/usr/local/lib/python3.4/dist-packages
$ ls /usr/local/lib/python3.4/dist-packages/selenium
common  __init__.py  __pycache__  selenium.py  webdriver

我在 /usr/local/lib/pythonX.X/dist-packages 中都安装了 behave,其中 X.X 是 2.7 和 3.4

非常感谢任何帮助。

如果您为 Python 3.x 和 Python 2.7 安装 Behave,则每次安装都会在 /usr/local/bin/behave 位置安装启动 Behave 的脚本。 最后安装的那个将赢得冲突,因为它会覆盖另一个的文件。 (进入 /usr/local/lib/python<version>/dist-packages 的文件会很好,因为 <version> 在每种情况下都不同。)

解决此问题的一种方法是仅在 Python 3 上安装 Behave。卸载 Python 2.7 版本并重新安装 Python 3 版本,它应该可以工作。

如果不同的项目确实需要这两个版本,那么您应该使用 virtualenv 为您正在处理的各种项目创建 Python 安装。这是我为自己的项目确定的。