找不到导入错误符号:__PySlice_AdjustIndices

Mus*_*afa 1 python selenium importerror python-2.7 selenium-webdriver

我正在做一些初学者Selenium来自动化浏览器中的任务。我已经使用Selenium安装了Selenium,pip install selenium并且我知道安装成功,因为我看到了以下消息:Successfully installed selenium-3.9.0

好的,很明显Selenium已经启动并且正在工作。

我想运行这个python文件:

from selenium import webdriver
browser = webdriver.Firefox()
type(browser)
browser.get('http://inventwithpython.com')
Run Code Online (Sandbox Code Playgroud)

但是,当我使用终端运行此命令时,出现以下错误:

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
Run Code Online (Sandbox Code Playgroud)

任何帮助都会超级有帮助。这是一个非常简单的脚本,我不知道为什么会这样!

提前致谢!

Deb*_*anB 5

错误说明了一切:

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
Run Code Online (Sandbox Code Playgroud)

原因和解决方法

  • 当您安装新版本的python时,可能会出现此问题。在这些情况下,您可能需要运行hash -r python告诉bash将缓存的位置重置为python可执行文件。
  • 如果hash -r python表示过多的参数,则可以使用rehashcommand。
  • 根据讨论找不到符号:__PyCodecInfo_GetIncrementalDecoder的问题,当PythonPython 2.7.10更新到2.7.11发生
  • 如果您使用的是conda软件包,则需要运行conda install python=2.7.10它来解决此问题。
  • 即使降级Python2.7.10也可以。
  • 最好的解决方案是重新安装Selenium

  • 是的,非常感谢你!第一个建议是`hash -r python`。 (2认同)