Python的行为是从python2.7而不是python3.4运行

时间:2016-05-26 00:18:24

标签: python-behave

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

以下是我看到的内容:

$ 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,其中X.X是2.7和3.4

任何帮助都非常感激。

1 个答案:

答案 0 :(得分:2)

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

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

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