我剛剛完成了一個Python程序的測試,該程序涉及登錄網站并需要設置CSRF cookie。我嘗試將其打包為exepy2exe并收到套接字錯誤。我嘗試使用時遇到相同的問題PyInstaller。搜尋Errno時,我發現其他一些人也遇到相同的問題,因此我知道問題與SLL證書的位置有關。這是我的site_agent課程,包括日志記錄調用。 class site_agent: self.get_params() URL = root_url + '/accounts/login/' # Retrieve the CSRF token first self.agent = requests.session() self.agent.get(URL) # retrieves the cookie # This line throws the error self.csrftoken = self.agent.cookies['csrftoken'] # Set up login data including the CSRF cookie login_data = {'username': self.username, 'password': self.password, 'csrfmiddlewaretoken' : self.csrftoken} # Log in logging.info('Logging in') response = self.agent.post(URL, data=login_data, headers=hdr)錯誤出現在該self.agent.get(URL)行,并且Traceback顯示:Traceback (most recent call last): File "<string>", line 223, in <module> File "<string>", line 198, in main File "<string>", line 49, in __init__ File "C:\pyinstaller-2.0\pyinstaller-2.0\autoresponder\build\pyi.win32\autoresponder\out00-PYZ.pyz\requests.sessions", line 350, in get File "C:\pyinstaller-2.0\pyinstaller-2.0\autoresponder\build\pyi.win32\autoresponder\out00-PYZ.pyz\requests.sessions", line 338, in request File "C:\pyinstaller-2.0\pyinstaller-2.0\autoresponder\build\pyi.win32\autoresponder\out00-PYZ.pyz\requests.sessions", line 441, in send File "C:\pyinstaller-2.0\pyinstaller-2.0\autoresponder\build\pyi.win32\autoresponder\out00-PYZ.pyz\requests.adapters", line 331, in sendrequests.exceptions.SSLError: [Errno 185090050] _ssl.c:336: error:0B084002:x509certificate routines:X509_load_cert_crl_file:system lib這是否意味著問題出在requests.adapters哪里?如果是這樣,我可以在已安裝的Python軟件包中對其進行編輯以在其他地方查找cacert.pem,用py2exe或重建我的exe PyInstaller,然后在已安裝的Python版本中將其更改回嗎?
修復使用py2exe(或PyInstaller)編譯的exe中的SSL證書錯誤
慕田峪7331174
2021-03-29 08:55:03