【发布时间】:2019-06-15 13:24:10
【问题描述】:
我正在尝试将 scrapy 脚本转换为 exe 文件。 main.py 文件如下所示:
from scrapy.crawler import CrawlerProcess
from amazon.spiders.amazon_scraper import Spider
spider = Spider()
process = CrawlerProcess({
'FEED_FORMAT': 'csv',
'FEED_URI': 'data.csv',
'DOWNLOAD_DELAY': 3,
'RANDOMIZE_DOWNLOAD_DELAY': True,
'ROTATING_PROXY_LIST_PATH': 'proxies.txt',
'USER_AGENT_LIST': 'useragents.txt',
'DOWNLOADER_MIDDLEWARES' :
{
'rotating_proxies.middlewares.RotatingProxyMiddleware': 610,
'rotating_proxies.middlewares.BanDetectionMiddleware': 620,
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': None,
'random_useragent.RandomUserAgentMiddleware': 400
}
})
process.crawl(spider)
process.start() # the script will block here until the crawling is finished
scrapy 脚本看起来和其他脚本没什么两样。我正在使用 pyinstaller.exe --onefile main.py 将其转换为 exe 文件。当我尝试打开 dist 文件夹中的 main.exe 文件时,它开始输出错误:
FileNotFoundError: [Errno 2] No such file or directory: '...\\scrapy\\VERSION'
我可以通过在 dist 文件夹中创建一个 scrapy 文件夹并从 lib/site-packages/scrapy 上传 VERSION 文件来修复它。 之后,还会出现许多其他错误,但我可以通过上传一些 scrapy 库来修复它们。
最后它开始输出错误:
ModuleNotFoundError: No module named 'email.mime'
我什至不知道这是什么意思。没见过。
我正在使用:
Python 3.6.5
Scrapy 1.5.0
pyinstaller 3.3.1
【问题讨论】:
标签: python scrapy pyinstaller