Python Selenium ModuleNotFound运行与Pynsist捆绑的已安装程序时出错
我在3.6中编写了一个小型python程序,用于自动化我每月在工作中完成的任务。它可能对我的同事有用,所以我一直在尝试将它与Pynsist捆绑在一起 在绑定之前,程序在空闲和windows命令行中都成功运行。通过.exe进行捆绑和安装后,我收到一个错误,说明: 回溯(最近一次调用):文件“C:\Program Files\Time 时钟器\ timeClocker.py“,第7行,输入 从selenium导入webdriver ModuleNotFoundError:没有名为“selenium”的模块 Selenium并不是我的代码中导入的第一个模块,因此其他模块似乎都被正确绑定,问题只在于Selenium 我已经尝试在pynsist\u pkgs文件夹中包含一些selenium文件,但这也不起作用。这是那些文件,不确定它们是否正确Python Selenium ModuleNotFound运行与Pynsist捆绑的已安装程序时出错,python,selenium,pynsist,Python,Selenium,Pynsist,我在3.6中编写了一个小型python程序,用于自动化我每月在工作中完成的任务。它可能对我的同事有用,所以我一直在尝试将它与Pynsist捆绑在一起 在绑定之前,程序在空闲和windows命令行中都成功运行。通过.exe进行捆绑和安装后,我收到一个错误,说明: 回溯(最近一次调用):文件“C:\Program Files\Time 时钟器\ timeClocker.py“,第7行,输入 从selenium导入webdriver ModuleNotFoundError:没有名为“selenium”
04/04/2017 02:25 PM 19,057 CHANGES
03/08/2017 07:00 AM 915 MANIFEST.in
04/04/2017 02:28 PM 7,864 PKG-INFO
04/04/2017 08:11 AM 5,719 README.rst
04/13/2017 04:50 PM <DIR> selenium
04/13/2017 04:50 PM <DIR> selenium.egg-info
04/04/2017 02:28 PM 230 setup.cfg
04/04/2017 02:26 PM 3,806 setup.py
6 File(s) 37,591 bytes
如果有人有任何想法,我们将不胜感激 将转载作为一个答案,以便其他遇到此问题的人都能清楚地看到 installer.cfg文件使用
script=
定义如何启动应用程序。建议使用entry\u point=
来指定函数,如:
entry_point=my_module:main
有更多关于这个功能的信息
如果确实需要使用脚本,请确保它在尝试导入包之前在顶部有一些样板文件:
import sys
sys.path.insert(0, 'pkgs')
使用
entry\u point=
允许Pynsist自动添加此样板文件和更多内容(例如,更好地处理GUI应用程序中未捕获的异常)。这就是为什么我总是建议使用overscript=
。Pynsist的未来版本甚至可能会删除指定脚本的选项。使用Pynsist构建脚本时,应该会得到一个文件夹build/nsis
。看看里面,你能看到是否存在pkgs/selenium/_init__uu;.py
吗?@ThomasK它确实存在,而且它在安装后也存在于程序文件应用程序文件夹中。啊,我知道。您正在使用installer.cfg中的script=
选项。一般来说,我强烈建议使用entry\u point=
选项而不是脚本-这样,您就可以给它一个函数来调用以启动应用程序。看见如果您确实使用script=
,则需要在脚本顶部添加一些样板文件,这也在文档中。@ThomasK看起来效果不错!我不得不重新安排我的结构不太好的代码,以拥有一个main函数,并确保某些变量是全局可访问的,但更改为entry_point方法是关键。非常感谢您抽出时间!
import sys
sys.path.insert(0, 'pkgs')