小编ptr*_*ptr的帖子

Pycharm汽车相对进口

无论何时使用PyCharm提供的autoimport,它都会生成绝对路径导入.即

from my_package.my_subpackage import my_thing
Run Code Online (Sandbox Code Playgroud)

代替

from .my_subpackage import my_thing
Run Code Online (Sandbox Code Playgroud)

导入python包时是否有使用相对导入而不是绝对导入的设置?

python python-import pycharm relative-import

13
推荐指数
2
解决办法
2302
查看次数

sphinx-apidoc 与自动摘要

我在尝试找出为 Django 项目实现自动文档生成的最佳方法时遇到了一些困难

我的项目结构类似于以下内容:

myproj/           # project root
|- docs/          # docs root
|- myproj/        # package root
   |- app1/
   |- app2/
   |- app3/
   utils.py
   ...
Run Code Online (Sandbox Code Playgroud)

我想自动为包根目录下的所有内容生成文档 - 最初开始使用sphinx-apidoc,但后来阅读了一些暗示我应该使用自动摘要的内容,并且无法找到任何概述这两个选项之间区别的信息。

python django python-sphinx

7
推荐指数
1
解决办法
3603
查看次数

传单弹出窗口,设置关闭事件

我知道您可以map在传单中的对象上设置“弹出窗口关闭”事件,有没有办法在每个弹出窗口的基础上设置它?

如果我有一个来自这样的事件的图层......

var layer = event.layer;

var bound = layer.bindPopup(
  "blah",
  {closeButton: false, closeOnClick: false}
);

var popUp = bound.openPopup();
Run Code Online (Sandbox Code Playgroud)

我想根据条件有条件地为此弹出窗口设置关闭事件。我面临的问题是,当他们绘制形状时,我会打开一个弹出窗口以允许他们命名。但是,如果他们在此弹出窗口打开时单击该形状,则会运行“单击”事件,该事件会打开另一个弹出窗口以对其进行编辑。我想避免这种情况,如果他们关闭第一个弹出窗口而不设置名称,它会完全删除形状。

javascript popup leaflet

6
推荐指数
1
解决办法
6206
查看次数

Python:附加到基类列表/元组成员

刚才有人问我这个问题,但我想不出一个Python式的解决方案,所以我想我应该把它扔在这里以获得更好的观点。

在超类中扩展基类变量元组/列表等的最佳方法是什么?

以下作品...

class BaseClass(object):
    some_class_member = (1, 2, 3, 4, 5,)


class AnotherClass(BaseClass):
    some_class_member = BaseClass.some_class_member + (6, 7,)

a = BaseClass()
a.some_class_member  # (1, 2, 3, 4, 5)

b = AnotherClass()
b.some_class_member  # (1, 2, 3, 4, 5, 6, 7)
Run Code Online (Sandbox Code Playgroud)

但似乎不太Pythonic,因为您必须按名称引用BaseClass,因此如果名称更改则必须更新它。有更好的方法来解决这个问题吗?

python

5
推荐指数
1
解决办法
1523
查看次数

Docker`COPY`文件不起作用

我有一个相对简单的 dockerfile

FROM python:3.6.5-alpine

COPY somebinary /usr/local/bin/

COPY install.sh /install.sh
RUN /install.sh
Run Code Online (Sandbox Code Playgroud)

二进制文件被复制得很好(当我运行容器进行检查时),但脚本似乎没有被复制,所以当我尝试运行它时,我得到:

Step 4/5 : COPY install.sh /install.sh
 ---> 38ecc6dbad13
Step 5/5 : RUN /install.sh
 ---> Running in 0b06962d6e1b
/bin/sh: /install.sh: not found
The command '/bin/sh -c /install.sh' returned a non-zero code: 127
Run Code Online (Sandbox Code Playgroud)

我制作的任何其他测试文件也会发生同样的情况,当图像运行时它们不可用。其他人已经成功运行了完全相同的脚本,所以我怀疑这可能与我在 Windows 上通过 Git Bash 运行 docker 的事实有关?可能是权限问题吗?

e:我去尝试通过 powershell 运行并得到同样的错误,所以也许 git bash 是一个红鲱鱼

docker

5
推荐指数
1
解决办法
4427
查看次数

将 Pytest 测试文件打包为可执行文件

所以我设计了一个 Pytest 测试包,其中包含一个 python 脚本:

\n\n
class TestClass():\n\n   test_a()\n\n   test_b()\n
Run Code Online (Sandbox Code Playgroud)\n\n

我想知道是否可以将测试打包为可执行文件并运行它?\n原因是我想避免在我\xe2\x80\x99m 要执行测试的所有计算机上安装 python 和 python 包。

\n

python pytest python-2.7 python-3.x

5
推荐指数
1
解决办法
4692
查看次数

Django FormView:区分创建和更新

我有一个自定义FormView类的mixin,如果保存成功,只需添加成功消息,所以:

class MessagesMixin(object):

    def form_valid(self, form):
        response = super(MessagesMixin, self).form_valid(form)
        messages.add_message(self.request,
                             messages.SUCCESS,
                             'Successfully created %s' % form.instance)
        return response
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,这只能真正涵盖创作.如果实例更新,则消息仍将显示"已创建".有没有办法区分form_valid方法中的创建/更新?

django django-generic-views

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

Jenkins pipeline dir() 指令导致 docker 容器退出

继我在这个问题中遇到的问题之后:Why when using Jenkins dockerfile agent does it run with invalid user?

我成功地以 root 用户身份运行容器,但是我收到的实际 java 堆栈跟踪失败保持不变,这意味着这不是容器中用户的权限错误。

dir() {}实际问题似乎与我的舞台中的步骤有关。重申一下,当我有以下情况时:

steps {
    dir('/src') {
        sh 'pwd'  // any command
    }
}
Run Code Online (Sandbox Code Playgroud)

容器退出而不运行命令:

[Pipeline] withDockerContainer
Jenkins seems to be running inside container aaee62f2a28e29b94c13fcdc08c1a82ef7baed48beabe54579db07b2fbd26b23
$ docker run -t -d -u 1000:1000 -w "/var/jenkins_home/workspace/My Project" --volumes-from aaee62f2a28e29b94c13fcdc08c1a82ef7baed48beabe54579db07b2fbd26b23 -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e …
Run Code Online (Sandbox Code Playgroud)

jenkins docker jenkins-pipeline

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

在测试期间,Pickle无法在django locmem缓存中存储对象?

有点令我困惑的东西......

>>> from django.core.cache import get_cache
>>>
>>> cache = get_cache('django.core.cache.backends.locmem.LocMemCache')
>>>
>>> # Set the 'content' cache key to a string
>>> cache.set('content', 'a string')
>>> cache.get('content')
'a string'
>>>
>>> class TestObj(object):
...     pass
>>>
>>> a = TestObj()
>>> cache.set('content', a)
>>>
>>> # cache hasn't updated...
>>> cache.get('content')
'a string'
>>>
>>> cache.set('content', 1)
>>> # this is fine however..
>>> cache.get('content')
1
>>>
Run Code Online (Sandbox Code Playgroud)

好的,因此缓存由于某种原因不接受对象.

# in locmem.py, set() method
try:
    pickled = pickle.dumps(new_value, pickle.HIGHEST_PROTOCOL)
    self._cache[key] …
Run Code Online (Sandbox Code Playgroud)

python django caching pickle

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