鱼C论坛

 找回密码
 立即注册
查看: 2875|回复: 3

[已解决]selenium py2exe 打包后错误

[复制链接]
发表于 2017-5-16 15:15:14 | 显示全部楼层 |阅读模式
30鱼币
本帖最后由 ycgzs98789 于 2017-5-17 12:07 编辑

请教:
使用selenium写个打开网址的程序,正常运行,但使用py2exe打包成exe后,执行出错,chromedriver.exe已放置在exe同目录下.
所有文件及报错信息
remind.py
  1. from selenium import webdriver


  2. def remindMain():
  3.    
  4.     url = 'http://www.baidu.com'

  5.     driver = webdriver.Chrome()
  6.     driver.get(url)


  7. if __name__ == '__main__':
  8.    
  9.     remindMain()
  10.    
  11.    
复制代码


setup.py
  1. from distutils.core import setup
  2. import py2exe

  3. setup(console=['remind.py'])
复制代码


生成exe代码,当前目录下
  1. python setup.py py2exe
复制代码


exe报错信息
  1. E:\project\py_project\test\dist>remind.exe
  2. Traceback (most recent call last):
  3.   File "remind.py", line 1, in <module>
  4.   File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
  5.   File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
  6.   File "<frozen importlib._bootstrap>", line 1191, in _load_unlocked
  7.   File "<frozen importlib._bootstrap>", line 1161, in _load_backward_compatible
  8.   File "C:\Python34\lib\site-packages\selenium\webdriver\__init__.py", line 18, in <module>
  9.     from .firefox.webdriver import WebDriver as Firefox  # noqa
  10.   File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
  11.   File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
  12.   File "<frozen importlib._bootstrap>", line 1191, in _load_unlocked
  13.   File "<frozen importlib._bootstrap>", line 1161, in _load_backward_compatible
  14.   File "C:\Python34\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 34, in <module>
  15.     from selenium.webdriver.remote.webdriver import WebDriver as RemoteWebDriver
  16.   File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
  17.   File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
  18.   File "<frozen importlib._bootstrap>", line 1191, in _load_unlocked
  19.   File "<frozen importlib._bootstrap>", line 1161, in _load_backward_compatible
  20.   File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 25, in <module>
  21.     from .webelement import WebElement
  22.   File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
  23.   File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
  24.   File "<frozen importlib._bootstrap>", line 1191, in _load_unlocked
  25.   File "<frozen importlib._bootstrap>", line 1161, in _load_backward_compatible
  26.   File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webelement.py", line 40, in <module>
  27.     getAttribute_js = pkgutil.get_data(__package__, 'getAttribute.js').decode('utf8')
  28.   File "C:\Python34\lib\pkgutil.py", line 611, in get_data
  29.     spec = importlib.util.find_spec(package)
  30.   File "C:\Python34\lib\importlib\util.py", line 81, in find_spec
  31.     fullname = resolve_name(name, package) if name.startswith('.') else name
  32. AttributeError: 'NoneType' object has no attribute 'startswith'
复制代码
最佳答案
2017-5-16 15:15:15
pyinstaller完美搞定,只需要命令行输入一行命令就行,根本不需要建一个代码文件

最佳答案

查看完整内容

pyinstaller完美搞定,只需要命令行输入一行命令就行,根本不需要建一个代码文件
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-5-16 15:15:15 | 显示全部楼层    本楼为最佳答案   
pyinstaller完美搞定,只需要命令行输入一行命令就行,根本不需要建一个代码文件
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-5-16 16:37:35 | 显示全部楼层
Python版本:
Python 3.4.4 (v3.4.4:737efcadf5a6, Dec 20 2015, 20:20:57) [MSC v.1600 64 bit (AMD64)]
py2exe版本:
0.9.2.2
selenium版本:
3.4.1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-5-17 14:13:39 | 显示全部楼层
pyinstaller搞定
安装:pip install pyinstaller
打包:pyinstaller -F ***.py
注:程序内需要使用配置文件的,使用
  1. os.path.dirname(os.path.abspath(sys.argv[0]))
复制代码
获取当前exe文件路径
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-27 14:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表