模拟生产代码

时间:2015-04-08 11:54:55

标签: python scrapy scrapyd

我会试着直接来到这里:

我是一名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服务器。答案被称为“重复”, 回答我的问题。

1 个答案:

答案 0 :(得分:2)

您应该创建依赖项的鸡蛋,而不是整个项目的鸡蛋。为此,首先克隆mock存储库:

hg clone https://code.google.com/p/mock/

然后建立鸡蛋:

python setup.py bdist_egg

找到要在dist文件夹下使用的鸡蛋。将它上传到Scrapyd服务器,它应该满足依赖性。