Python Selenium ModuleNotFound运行与Pynsist捆绑的已安装程序时出错

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”

我在3.6中编写了一个小型python程序,用于自动化我每月在工作中完成的任务。它可能对我的同事有用,所以我一直在尝试将它与Pynsist捆绑在一起

在绑定之前,程序在空闲和windows命令行中都成功运行。通过.exe进行捆绑和安装后,我收到一个错误,说明:

回溯(最近一次调用):文件“C:\Program Files\Time 时钟器\ timeClocker.py“,第7行,输入 从selenium导入webdriver ModuleNotFoundError:没有名为“selenium”的模块

Selenium并不是我的代码中导入的第一个模块,因此其他模块似乎都被正确绑定,问题只在于Selenium

我已经尝试在pynsist\u pkgs文件夹中包含一些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应用程序中未捕获的异常)。这就是为什么我总是建议使用over
script=
。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')