相关疑难解决方法(0)

使用grep进行负匹配(匹配不包含foo的行)

我一直在试图找出这个命令的语法:

grep ! error_log | find /home/foo/public_html/ -mmin -60
Run Code Online (Sandbox Code Playgroud)

要么

grep '[^error_log]' | find /home/baumerf/public_html/ -mmin -60
Run Code Online (Sandbox Code Playgroud)

我需要查看所有已修改的文件,除了那些已命名的文件error_log.

我在这里读过它,但只发现了一个not-regex模式.

grep

912
推荐指数
3
解决办法
77万
查看次数

如何为多个环境自定义requirements.txt?

我有两个分支,开发和生产.每个都有依赖关系,其中一些是不同的.开发指向本身正在开发的依赖项.同样适用于生产.我需要部署到Heroku,它希望每个分支的依赖关系都在一个名为'requirements.txt'的文件中.

组织的最佳方式是什么?

我想到的是:

  • 维护单独的需求文件,每个分支一个(必须经常合并!)
  • 告诉Heroku我想要使用哪个需求文件(环境变量?)
  • 编写部署脚本(创建临时分支,修改需求文件,提交,部署,删除临时分支)

python deployment heroku requirements.txt

88
推荐指数
3
解决办法
2万
查看次数

告诉pip安装需求文件中列出的软件包的依赖项

开发一个Django Web应用程序,我有一个我需要在virtualenv中安装的软件包列表.说:

Django==1.3.1
--extra-index-url=http://dist.pinaxproject.com/dev/
Pinax==0.9b1.dev10
git+git://github.com/pinax/pinax-theme-bootstrap.git@cff4f5bbe9f87f0c67ee9ada9aa8ae82978f9890
# and other packages
Run Code Online (Sandbox Code Playgroud)

最初我在开发过程中一个接一个地手动安装它们.这安装了所需的依赖项,我最终pip freeze在部署应用程序之前使用了它.

问题是,当我升级一些软件包时,一些依赖项不再使用也不需要,但它们仍然被列出pip freeze.

现在,我想以这种方式建立一个新的virtualenv:

  • 将所需的包(没有它们的依赖项)放在需求文件中,
    比如manual-requirements.txt
  • 用它们的依赖项安装它们
    pip install -r manual-requirement.txt(←问题,这不会安装依赖项)
  • 冻结完整的virtualenv
    pip freeze -r manual-requirements.txt > full-requirements.txt
    并部署.

没有手动在新的virtualenv中重新安装软件包来获取它们的依赖关系的任何方法吗?这很容易出错,我希望自动化从不再需要的旧依赖项中清除virtualenv的过程.

编辑:实际上,pip 安装未在需求文件中明确列出的依赖项,即使文档告诉我们这些文件是扁平的.关于我希望安装哪些依赖项我错了.我会让这个问题让任​​何人对pip没有安装所有依赖项有疑问.

python pip requirements.txt

48
推荐指数
5
解决办法
10万
查看次数

Setuptools"开发"要求

TL; DR:有没有办法在运行时挂起setuptool的'develop'来安装一组开发需求python setup.py develop

我正在使用setuptools构建我的第一个python包.我将要求指定为:

requirements = [
    'click',
    'ansible',
    'fabric',
    'gitpython',
    'pyyaml',
    'jinja2',
    'yapsy'
]

test_requirements = [
    'pytest',
    'pytest-pep8',
    'pytest-cov',
]

setup(
...
    install_requires=requirements,
    tests_require=test_requirements,
...
)
Run Code Online (Sandbox Code Playgroud)

在开发过程中,我一直在安装软件包(在虚拟环境中):

python setup.py develop
Run Code Online (Sandbox Code Playgroud)

并卸载:

python setup.py develop -u
Run Code Online (Sandbox Code Playgroud)

该软件包使用entry_points来安装一些命令行脚本,因此这为我设置了命令,并允许我在同时测试命令时编辑软件包.

我还有一些用于开发的依赖项... sphinx +扩展和其他一些东西(使用该包不需要的东西).我现在只是在虚拟环境中手动安装它们.我没有看到任何关于如何使用setuptools连接它们的文档(并且没有在googles上找到任何示例).

也许有办法挂钩'setup.py develop'来安装一组额外的要求?另一种方法我还没读过?

python requirements setuptools

41
推荐指数
1
解决办法
1万
查看次数

点正则表达式搜索

我需要找到PyPI匹配特定正则表达式的所有包:

^django-.*?admin.*$
Run Code Online (Sandbox Code Playgroud)

基本上,包的名字应该与启动django-,并有admin后话.例如,以下包应该匹配:

django-redis-admin
django-admin-ckeditor 
django-admintools-bootstrap
Run Code Online (Sandbox Code Playgroud)

我能做到pip search django-,但是有很多我不感兴趣的软件包.

是否pip提供了一种通过正则表达式查找包的方法?或者,我应该只是管的结果django-,以grep过滤掉无关的包?

此外,可能是一个的"交集" pip search django-,并pip search admin有助于太.

python regex packages pip

8
推荐指数
1
解决办法
2291
查看次数