Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ImportError: sys.meta_path is None, Python is likely shutting down

Newbee here. Kindly explain why this issue happened and how to fix it.

Error:

"C:\Program Files (x86)\Python36-32\python.exe" C:/Users/Vivek-Pc/PycharmProjects/tryOutSeries/searchTryout2.py Exception ignored in: > Traceback (most recent call last): File "C:\Program Files (x86)\Python36-32\lib\site-packages\selenium\webdriver\common\service.py", line 173, in del File "C:\Program Files (x86)\Python36-32\lib\site-packages\selenium\webdriver\common\service.py", line 149, in stop File "C:\Program Files (x86)\Python36-32\lib\site-packages\selenium\webdriver\common\service.py", line 120, in send_remote_shutdown_command ImportError: sys.meta_path is None, Python is likely shutting down Process finished with exit code 0

Code Used:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver_path = "c:\Program Files (x86)\Python36-32\Lib\site-packages\selenium\webdriver\chrome\chromedriver"
b_obj = webdriver.Chrome(driver_path)
b_obj.implicitly_wait(15)
b_obj.maximize_window()
b_obj.get('http://stackoverflow.com/')

search_box = b_obj.find_element_by_name('q')
search_box.clear()
search_box.send_keys("Selenium")
search_box.submit()
b_obj.close()

Environment Info:

Windows, Selenium, Python, Chrome (chromedriver.exe) & PyCharm

like image 883
Vivek22 Avatar asked Jan 05 '17 08:01

Vivek22


3 Answers

you can also give time for the quit method to finish execution before python exit. this worked for me :

#right before quitting
driver.quit()
time.sleep(1)
like image 112
JGauthier Avatar answered Nov 03 '22 15:11

JGauthier


I've reproduced the same error using Python 3.6, Selenium 3.0.2 and ChromeDriver 2.27 (everything latest at this point).

The problem appears to happen when the Python selenium webdriver tries to stop the chromedriver service either when you explicitly close the driver, or when the script execution simply ends (and the __del__ method gets to be executed).

Reported the issue to Python/Selenium github issue tracker:

  • sys.meta_path is None, Python is likely shutting down

Workaround:

I found that using driver.quit() instead of driver.close() helps to workaround the problem.

like image 13
alecxe Avatar answered Nov 03 '22 13:11

alecxe


I have hit the same issue while working on CLI Automation project.

To get rid of this, you have to close the opened objects such as:

  1. If working on Paramiko, have to close the opened handlers client.close() shell.close()
  2. If working on file operations then file_handler.close()
  3. if working on sockets then we have close the objects created on it.
like image 1
Akshay Jagirdar Avatar answered Nov 03 '22 14:11

Akshay Jagirdar