小编gue*_*tli的帖子

“文件不是 `gci`-ed with --skip- generated -s standard,default (gci)”的含义

我收到此错误消息:

main.go:24: File is not `gci`-ed with --skip-generated -s standard,default (gci)
import (
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

背景:我是 Go 新手,并且 linting 不是我设置的。我承认我不知道产生此警告的实际 linter。

go golint

18
推荐指数
2
解决办法
8160
查看次数

docker:官方ubuntu 14.04图片

我试图找到官方的Ubuntu 14.04图像:

docker search ubuntu | grep -i offi
Run Code Online (Sandbox Code Playgroud)

但我只找到这张图片,我相信:

ubuntu    Official Ubuntu base image
Run Code Online (Sandbox Code Playgroud)

其他图像来自未知来源(如foouser/ubuntu ......),我不相信这些来源.

containers docker

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

配置第三方脚本的日志记录

我有一个第三方python控制台脚本,我不想修改该源代码.

但我想配置由脚本及其库完成的日志记录.该脚本使用标准的python日志记录,但不支持它的配置.

该脚本使用此模式:

import logging
logger=logging.getLogger(__name__)
Run Code Online (Sandbox Code Playgroud)

用例:

  • 我想要忽略文件foo.py的INFO消息.
  • 我想在记录消息中包含PID.

如果我不想修改控制台脚本的来源,我该如何配置日志记录?

该脚本通过调用cron.

如果此脚本如何配置日志记录?

重要

这个答案中创建一个包装器脚本对我来说不是一个解决方案.

linux进程层次结构如下所示:

Cron -> third_party_script
Run Code Online (Sandbox Code Playgroud)

在cron和third_party_script.之间应该有任何"胶水","包装"或"脏黑客"脚本.

为什么突兀/ netpicking?

我想练习"关注点分离".我希望能够在一个地方配置一次记录.这个配置应该被virtualenv的所有python代码使用.编写包装器将是一种解决方法.我想要一个解决方案.

python logging

17
推荐指数
3
解决办法
2779
查看次数

让sphinx使用setup.py中的版本

如果我这样做,sphinx-quickstart我会被问及项目的版本.

我想避免为我的项目版本提供两个位置.

如何在python包装世界中做到这一点?

python package python-sphinx

16
推荐指数
3
解决办法
2678
查看次数

tar.extractall()无法识别意外的EOF

Python tarfile库没有检测到损坏的tar.

user@host$ wc -c good.tar
143360 good.tar

user@host$ head -c 130000 good.tar > cut.tar

user@host$ tar -tf cut.tar 
...
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now
Run Code Online (Sandbox Code Playgroud)

非常好,命令行工具可识别意外的EOF.

user@host$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
>>> import tarfile
>>> tar=tarfile.open('cut.tar')
>>> tar.extractall()
Run Code Online (Sandbox Code Playgroud)

不太好.Python库对文件进行解码,但不会引发任何异常.

如何使用Python库检测意外的EOF?我想避开subprocess模块.

该参数errorlevel没有帮助.我试过errorlevel = 1和errorlevel = 2.

python tar eof

16
推荐指数
1
解决办法
608
查看次数

如果字段选项列表发生更改,请停止Django创建迁移

我有一个名为"foocore"的django核心应用程序.

有几个可选的类似插件的应用程序.例如"superfoo".

在我的例子中,每个插件都在CharField模型中添加了一个新选项,该模型属于"foocore".

如果选择列表发生更改,Django迁移会检测更改.

我认为这不是必要的.至少有一位其他开发者认为相同:

https://code.djangoproject.com/ticket/22837

class ActivePlugin(models.Model):
    plugin_name = models.CharField(max_length=32, choices=get_active_plugins())
Run Code Online (Sandbox Code Playgroud)

获取选择的代码:

class get_active_plugins(object):
    def __iter__(self):
        for item in ....:
            yield item
Run Code Online (Sandbox Code Playgroud)

核心"foocore"在几个项目中使用,每个安装都有一组不同的插件.Django试图创建无用的迁移....

有办法解决这个问题吗?

python django database-migration

16
推荐指数
3
解决办法
1977
查看次数

如何通过Python登录到journald(systemd)?

logging.info()想去journald(systemd).

到目前为止,我只发现了读取journald(不是我想要的)的python模块或者像这样工作的模块: journal.send('Hello world')

python logging systemd

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

如果Traith在github上成功,则增加版本号

我用Python 编写了一个简单的脚本.

现在我想让travis检查我的代码.travis成功后,版本号应该增加.

到目前为止,我的脚本还没有版本号.我可以将它存储在对自动增量工作流程有意义的任何地方.

如何为Python代码执行此操作?

更新

它现在有效:

  1. 运行测试
  2. bumpversion
  3. 推送标签掌握

不幸的是,特拉维斯不支持"全部".这意味着如果我想运行几个Python版本的测试,在所有python版本的测试成功后我无法进行颠倒.

在我的情况下,我将检查Python2.7,直到travis解决了这个问题:https://github.com/travis-ci/travis-ci/issues/929

这是我的简单脚本:https://github.com/guettli/compare-with-remote

解决了 :-)

它现在有效:

  1. 开发人员推送到github
  2. Travis-CI运行
  3. 如果所有测试都成功,则颠倒会增加版本
  4. setup.py中的新版本被推送到github仓库
  5. 使用该工具将python包的新版本上传到pypi twine.

我在这里用github,travis和pypi解释我做CI的方式:https://github.com/guettli/github-travis-bumpversion-pypi

python versioning github travis-ci

16
推荐指数
1
解决办法
1295
查看次数

生成SQL以更新主键

我想更改主键和引用此值的所有表行.

# table master
master_id|name
===============
foo|bar

# table detail
detail_id|master_id|name
========================
1234|foo|blu
Run Code Online (Sandbox Code Playgroud)

如果我给出一个脚本或功能

 table=master, value-old=foo, value-new=abc
Run Code Online (Sandbox Code Playgroud)

我想创建一个SQL片段,在所有引用表"master"的表上执行更新:

update detail set master_id=value-new where master_id=value-new;
.....
Run Code Online (Sandbox Code Playgroud)

在内省的帮助下,这应该是可能的.

我用postgres.

更新

问题是,有许多表具有表"master"的外键.我想要一种方法来自动更新所有具有外键到主表的表.

sql postgresql introspection

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

通过`setup.py develop`安装失败 - pip工作

我的python包footools需要html5lib install_requires来自setup.py.

setup.py开发失败

安装setup.py develop失败:

cd src/footools/
python setup.py develop

Processing dependencies for footools==2016.205
Searching for html5lib==0.9999999
Reading https://source.example.com/pypi/simple/html5lib/
Download error on https://source.example.com/pypi/simple/html5lib/: 
   [Errno 185090050] _ssl.c:354: error:0B084002:x509 
   certificate routines:X509_load_cert_crl_file:system lib -- 
   Some packages may not be found!
Couldn't find index page for 'html5lib' (maybe misspelled?)
Run Code Online (Sandbox Code Playgroud)

pip工作

但是直接下载有效:

bar@workdevel123:~/src/footools> pip install html5lib==0.9999999
/home/bar/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:79: 
InsecurePlatformWarning: A true SSLContext object is not available. 
This prevents urllib3 from configuring SSL appropriately
and may cause certain SSL connections …
Run Code Online (Sandbox Code Playgroud)

python pip setup.py

15
推荐指数
2
解决办法
1791
查看次数