我已经创建了一个Scrapy蜘蛛,并成功地使用PyInstaller和一个光盘文件夹转换为Windows可执行文件。
为了做到这一点,我必须在Scrapy site-packages中做一些轻微的更改,并将这些软件包添加到Windows光盘文件夹中。
我怎样才能使这成为一个单一的EXE文件与注解Scrapy软件包从光盘文件夹?
我已经在PyInstaller中尝试了 --OneFile 命令,但它显示Scrapy错误。为什么?
错误:
导入错误:没有名为“scrapy.spiderloader”的模块
我正在从脚本调用Scrapy,而爬行器的详细信息正在crawprocess()函数中传递。我怎样才能让PyInstaller从某个位置获取更新后的Scrapy包呢?
3条答案
按热度按时间7jmck4yq1#
在 Python Scrapy conversion to EXE file using PyInstaller 中讨论了一个非常类似的问题。
最初,我使用
auto-py-to-exe
包(实际上是PyInstaller的GUI)。在
auto-py-to-exe -> advanced settings -> hidden import
中添加以下代码:在那之后,下面的命令出现在最后一个文本框中(不要忘记更改脚本的路径):
如果在之后,您的命令将返回:
ImportError: No module named 'modulename'
-将缺少的模块添加到隐藏导入,并使用新的扩展隐藏导入重复此过程。(我重复这个过程48次,以便接收一个工作EXE文件(并接收子模块列表)!!)
56lgkhnf2#
我通过在spec文件中使用 --hidden imports 修复了它。PyInstaller不支持Scrapy中的所有二级模块导入。
运行PyInstaller命令。只需使用以下隐藏的导入更改更新spec文件,
修复了45个模块导入问题。使用 --onefile 有助于在单个可执行文件中运行Scrapy项目。
lmyy7pcs3#
按照the updated documentation将Scrapy spider设置为Python脚本!
按照通常的PyInstaller命令使其成为可执行文件(确保您是在Scrapy项目中运行它)。