小编paw*_*moy的帖子

Pycharm Docker Unix/TCP套接字(使用unix:///var/run/docker.sock):权限被拒绝

尝试在PyCharm Professional版本中设置Docker时出现Permission Denied错误.我在Debian Jessie(BunsenLabs).

Cannot connect: io.netty.channel.AbstractChannel$AnnotatedConnectException: connect(..) failed: Permission denied: /var/run/docker.sock
caused by: java.net.ConnectException: connect(..) failed: Permission denied
Run Code Online (Sandbox Code Playgroud)

它既有默认设置(使用Unix套接字),也有TCP套接字,Engine API URL = unix:///var/run/docker.sock(它有意义吗?).

如果我们查看套接字上的权限:

$ ls -l /var/run/docker.sock
srw-rw---- 1 root docker 0 Jul  5 11:18 /var/run/docker.sock
Run Code Online (Sandbox Code Playgroud)

我们看到它由root和docker组拥有.

所以我尝试将我的用户添加到docker组(with sudo usermod -a -G docker USERNAME),然后重新启动Docker服务(with sudo service docker restart),但它仍然无效.

允许PyCharm使用套接字的一种方法是使用root权限运行它,即sudo pycharm,但我想避免这种情况.我还能够通过在socket(sudo chmod o+rw /var/run/docker.sock)上为其他人设置读写权限来解决这个问题,但现在每个人都可以在没有管理员权限的情况下在该机器上使用Docker.

允许PyCharm连接到Docker套接字最安全的方法是什么?

此外,请注意Docker在命令行上运行正常.在quick-and-dirty-fix(chmod o+rw)之前,我不得不使用sudo docker,并且已更新/etc/sudoers为不输入​​此命令的密码.现在它甚至没有工作sudo.它感觉不安全,但它是一台开发机器,所以如果没有其他解决方案,我会保持这样.

编辑:我正在添加其他重要信息.

首先,在Docker组中添加我的用户确实是要走的路.问题是,在使用时  sudo usermod,您所使用的用户帐户不会立即反映更改. …

sockets pycharm docker

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

Bash 5.0 的 --pretty-print 选项是做什么用的?

使用 Bash 5.0:

$ bash --help
GNU bash, version 5.0.0(1)-release-(x86_64-pc-linux-gnu)
Usage:  bash [GNU long option] [option] ...
    bash [GNU long option] [option] script-file ...
GNU long options:
    --debug
    --debugger
    --dump-po-strings
    --dump-strings
    --help
    --init-file
    --login
    --noediting
    --noprofile
    --norc
    --posix
    --pretty-print
    --rcfile
    --restricted
    --verbose
    --version
Run Code Online (Sandbox Code Playgroud)

这个--pretty-print选项是什么?我在 Bash 5.0 手册页和互联网上都找不到它!好神秘:O

bash

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

Sphinx 侧边栏:包括模块的函数和类的方法

在 Sphinx 文档中,我定义了一个这样的参考文档:

Reference
=========

.. toctree::

   reference_api
   reference_cli
   reference_client
   reference_downloads
   reference_options
   reference_stats
   reference_utils
Run Code Online (Sandbox Code Playgroud)

reference_api文件如下所示:

API module
==========

.. automodule:: aria2p.api
    :no-members:

API
---

.. autoclass:: aria2p.api.API
    :members:
Run Code Online (Sandbox Code Playgroud)

现在我在侧边栏中得到了这个列表:

Reference
  API module
    API
Run Code Online (Sandbox Code Playgroud)

我还想添加:members:侧栏中记录的所有 API 方法,例如:

Reference
  API module
    API
      __init__
      add_magnet
      add_metalink
      ...
Run Code Online (Sandbox Code Playgroud)

这可能吗?我是否应该更改 Sphinx 编写模块函数和类的方法以向它们添加锚点的方式,以便侧边栏可以显示它们?

sidebar python-sphinx

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

Python动态函数属性

我在尝试实现动态排序时遇到了一个有趣的问题。给出以下代码:

>>> l = []
>>> for i in range(2):
>>>     def f():
>>>         return f.v
>>>     f.v = i
>>>     l.append(f)
Run Code Online (Sandbox Code Playgroud)

您必须注意如何使用以下功能l

>>> l[0]()
1
>>> l[1]()
1
>>> [h() for h in l]
[1, 1]
>>> [f() for f in l]
[0, 1]
>>> f = l[0]
>>> f()
0
>>> k = l[1]
>>> k()
0
>>> f = l[1]
>>> k()
1
>>> del f
>>> k()
NameError: global name 'f' is not defined …
Run Code Online (Sandbox Code Playgroud)

python

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

d3 rect没有显示出来

我想显示一些数据的图例(标题?).对于图例的每个部分,我将一个rect和ap附加到父分区.问题是rect没有出现.

这是我的代码:

var groups = {{ groups|safe }};
groups.forEach(function(group, i) {
    var div = d3.select("#collapse-legend");
    div.append("rect")
        .attr("width", 17)
        .attr("height", 17)
        .style("fill-opacity", 1)
        .style("fill", function (d) { return c(i); });
    div.append("p").text(group)
});
Run Code Online (Sandbox Code Playgroud)

现在,当我检查我的网页内容时,我得到rect和p,但是rect:

  1. 没有出现
  2. 似乎宽度为0(用firefox显示其区域)

我的代码中有错误吗?有没有更好的方法来实现这一目标?我是javascript和d3.js的新手所以请放纵^^

更新

所以这就是我的结局.
HTML:

<div ...>
    <svg id="legend-svg"></svg>
</div>
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

// set height of svg
d3.select("#legend-svg").attr("height", 18*(groups.length+1));

// for each group, append rect then text
groups.forEach(function(group, i) {
    d3.select("#legend-svg").append("rect")
        .attr("y", i*20)
        .attr("width", 18)
        .attr("height", 18)
        .style("fill-opacity", 1)
        .style("fill", function (d) { return c(i); });
    d3.select("#legend-svg").append("text")
        .attr("x", …
Run Code Online (Sandbox Code Playgroud)

javascript jquery d3.js

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

用长度替换图案(Bash的便携式解决方案)

有没有办法用Sed / Awk / Perl替换其长度的模式?我正在寻找可以在Bash脚本中使用的小型可移植命令。

我有全部以特定字符(比如说x)开头的字符串,并且我想用x长度来代替这些重复。

所以

xxxx rest of the line
xxx again
xx again and again
xxxxx you got my point
Run Code Online (Sandbox Code Playgroud)

会成为

4 rest of the line
3 again
2 again and again
5 you got my point
Run Code Online (Sandbox Code Playgroud)

Sed可能不是一个好的候选人。我知道Perl有一个e选项,允许替换字符串来执行代码,但是我不知道怎么会在这里使用:perl -pe 's/^(x+)/length($1)/e'

bash perl awk sed

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

标签 统计

bash ×2

awk ×1

d3.js ×1

docker ×1

javascript ×1

jquery ×1

perl ×1

pycharm ×1

python ×1

python-sphinx ×1

sed ×1

sidebar ×1

sockets ×1