我正在做一些初学者 Selenium 以在浏览器中自动执行任务。我已经使用 pip install selenium 安装了 Selenium,并且我知道它已成功安装,因为我看到了以下消息:Successfully installed selenium-3.9.0。
好的,很明显 Selenium 已启动并正常工作。
我想运行这个 python 文件:
from selenium import webdriver
browser = webdriver.Firefox()
type(browser)
browser.get('http://inventwithpython.com')
但是,当我使用终端运行它时,出现以下错误:
mustafas-mbp:PlayDivya mustafahoda$ python playDivya.py
Traceback (most recent call last):
File "playDivya.py", line 4, in <module>
from selenium import webdriver
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/__init__.py", line 18, in <module>
from .firefox.webdriver import WebDriver as Firefox # noqa
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/firefox/webdriver.py", line 22, in <module>
import httplib as http_client
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 69, in <module>
from array import array
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/array.so, 2): Symbol not found: __PySlice_AdjustIndices
Referenced from: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/array.so
Expected in: flat namespace
in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/array.so
任何帮助都会非常有帮助。这是一个非常简单的脚本,我不知道为什么会这样!
提前致谢!
请您参考如下方法:
错误说明了一切:
Traceback (most recent call last):
File "playDivya.py", line 4, in <module>
from selenium import webdriver
.
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/array.so, 2): Symbol not found: __PySlice_AdjustIndices
原因及解决方案
- 安装新版本的 python 时可能会出现此问题。在这些情况下,您可能需要运行
hash -r python来告诉 bash 将缓存 位置重置为 python 可执行文件。 - 如果
hash -r python 说参数过多,那么您可以使用rehash命令。 - 根据讨论 Symbol not found: __PyCodecInfo_GetIncrementalDecoder Python 从
Python2.7.10 更新到 2.7.11 时会出现此问题。 - 如果您使用的是 conda 包,则需要运行
conda install python=2.7.10来解决这个问题。 - 即使将
Python降级到 2.7.10 也可以。 - 最好的解决方案是 Re-Installing Selenium .
