模拟生产代码
Mock in production code
我会尽量直截了当:
我是一名 Ruby 程序员,从 Python 开始,我正在尝试使用 Scrapy。我正在查看我公司从第三方收到的代码,有一件事破坏了我的 Scrapyd 部署(在云上):
ImportError: no module named mock
我已经在本地安装了,它在我的 requirements.txt 上,但是在部署过程中它正在破坏上游。准确地说,这是我在生产代码中 grep 引用 mock 的唯一地方:
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 对 Python 的新手来说有点混乱)。长话短说:我 运行 这个命令并将它上传到服务器的 Scrapyd 界面。所以,我无法访问任何 apt-get 甚至 ssh 到 Scrapyd 机器。
编辑 2:我无法访问 apt-get 在服务器上,这是一个普通的Scrapyd服务器。这个问题的答案被称为 'duplicate' 而不是 回答我的问题。
您应该创建依赖项的蛋,而不是整个项目的蛋。为此,首先克隆 mock
存储库:
hg clone https://code.google.com/p/mock/
然后构建蛋:
python setup.py bdist_egg
并在dist
文件夹下找到要使用的egg。上传到Scrapyd服务器,应该满足依赖关系。
我会尽量直截了当:
我是一名 Ruby 程序员,从 Python 开始,我正在尝试使用 Scrapy。我正在查看我公司从第三方收到的代码,有一件事破坏了我的 Scrapyd 部署(在云上):
ImportError: no module named mock
我已经在本地安装了,它在我的 requirements.txt 上,但是在部署过程中它正在破坏上游。准确地说,这是我在生产代码中 grep 引用 mock 的唯一地方:
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 对 Python 的新手来说有点混乱)。长话短说:我 运行 这个命令并将它上传到服务器的 Scrapyd 界面。所以,我无法访问任何 apt-get 甚至 ssh 到 Scrapyd 机器。
编辑 2:我无法访问 apt-get 在服务器上,这是一个普通的Scrapyd服务器。这个问题的答案被称为 'duplicate' 而不是 回答我的问题。
您应该创建依赖项的蛋,而不是整个项目的蛋。为此,首先克隆 mock
存储库:
hg clone https://code.google.com/p/mock/
然后构建蛋:
python setup.py bdist_egg
并在dist
文件夹下找到要使用的egg。上传到Scrapyd服务器,应该满足依赖关系。