我会试着直接来到这里:
我是一名Ruby程序员,从Python开始,我正在尝试使用Scrapy。我正在研究我的公司从第三方收到的代码,有一件事是破坏我的Scrapyd部署(在云端):
ImportError: no module named mock
我已在本地安装,它在我的requirements.txt上,但在部署过程中它正在打破上游。确切地说,这是我在生产代码上模拟引用的唯一地方:
def parse(self, response):
...
with mock.patch('lxml.html', lxml.html):
article.parse()
...
这个隧道尽头有人能看到一些光吗? 有没有人知道为什么你会在生产代码上使用那个模拟(它应该做什么?)
谢谢=]
编辑1:也许我应该澄清一些事情:在他们的Scrapyd界面中,他们有这个位置供开发人员上传'Python eggs'。我不确定那是什么(听起来只是一个Gemfile,或者......服务器导入的一组模块),但我运行了python setup.py bdist_egg
来生成这个蛋,我想它包括所有依赖项(setup.py对于新手来说有点混乱)。长话短说:我运行此命令并将其上传到服务器的Scrapyd界面。因此,我无法访问Scrapyd机器的apt-get甚至ssh。
编辑2 :我无法访问服务器上的 apt-get ,这是正常的Scrapyd服务器。答案被称为“重复”, 不 回答我的问题。
答案 0 :(得分:2)
您应该创建依赖项的鸡蛋,而不是整个项目的鸡蛋。为此,首先克隆mock
存储库:
hg clone https://code.google.com/p/mock/
然后建立鸡蛋:
python setup.py bdist_egg
找到要在dist
文件夹下使用的鸡蛋。将它上传到Scrapyd服务器,它应该满足依赖性。