小编Ale*_*ail的帖子

如何使用卷在dockerized postgres数据库中保存数据

我的docker compose文件有三个容器,web,nginx和postgres.Postgres看起来像这样:

postgres:
  container_name: postgres
  restart: always
  image: postgres:latest
  volumes:
    - ./database:/var/lib/postgresql
  ports:
    - "5432:5432
Run Code Online (Sandbox Code Playgroud)

我的目标是安装一个./database与postgres容器内调用的本地文件夹相对应的卷/var/lib/postgres.当我启动这些容器并将数据插入postgres时,我验证/var/lib/postgres/data/base/了我正在添加的数据(在postgres容器中),但是在我的本地系统中,./database只获取了一个data文件夹,即./database/data创建了它,但它是空的.为什么?

笔记:

更新1

根据尼克的建议,我做了一个docker inspect并发现:

    "Mounts": [
        {
            "Source": "/Users/alex/Documents/MyApp/database",
            "Destination": "/var/lib/postgresql",
            "Mode": "rw",
            "RW": true,
            "Propagation": "rprivate"
        },
        {
            "Name": "e5bf22471215db058127109053e72e0a423d97b05a2afb4824b411322efd2c35",
            "Source": "/var/lib/docker/volumes/e5bf22471215db058127109053e72e0a423d97b05a2afb4824b411322efd2c35/_data",
            "Destination": "/var/lib/postgresql/data",
            "Driver": "local",
            "Mode": "",
            "RW": true,
            "Propagation": ""
        }
    ],
Run Code Online (Sandbox Code Playgroud)

这似乎是数据被另一个我自己编码的卷偷走了.不知道为什么会这样.postgres图像是否为我创建了该卷?如果是这样,当我重新启动时,是否有某种方法可以使用该卷而不是我正在安装的卷?否则,是否有一种很好的方法可以禁用其他卷并使用我自己的卷./database

更新2

我找到了解决方案,感谢尼克!(和另一位朋友)以下答案.

postgresql docker docker-compose docker-volume

166
推荐指数
4
解决办法
11万
查看次数

如何为基本软件包设置配置__main__.py,__ init__.py和__setup__.py?

背景:

我有一个像这样的目录结构:

Package/
    setup.py
    src/
        __init__.py
        __main__.py 
        code.py
Run Code Online (Sandbox Code Playgroud)

我希望能够以很多不同的方式运行代码.

  1. pip install Package然后python然后from Package import *

  2. python -m Package 应该做的事情 __main__.py

  3. python __main__.py这也应该做的事情,__main__.py但这一次,我们假设你已经下载了源而不是pip installing.

现在我已经让前两个工作了,但设置很乱:

setup.py:

setup(
    name='Package',
    packages=['Package'],
    package_dir={'Package': 'src'},
    ...
    entry_points={ 'console_scripts': ['Package = src.__main__:main' ] }
Run Code Online (Sandbox Code Playgroud)

__init__.py:

from Package.code import .......
Run Code Online (Sandbox Code Playgroud)

__main__.py:

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

对我来说更有意义的是两种情况都要写

from code import ........
Run Code Online (Sandbox Code Playgroud)

但这给了我导入错误.

题:

我的方式真的是唯一的方式吗?

最重要的是,我如何支持第三个用例?现在,python __main__.py抛出

File "__main__.py", line 10, in <module>
    from . import code
ImportError: …
Run Code Online (Sandbox Code Playgroud)

python pip setuptools

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

光谱聚类python中的图形

我想使用谱聚类在python中聚类图.

光谱聚类是一种更通用的技术,不仅可以应用于图形,还可以应用于图像或任何类型的数据,但是,它被认为是一种特殊的图形聚类技术.可悲的是,我无法在python在线找到谱聚类图的例子.

我喜欢如何解决这个问题.如果有人可以帮我搞清楚,我可以将文档添加到scikit learn.

笔记:

python graph cluster-analysis spectral scikit-learn

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

TensorFlow中的双线性张量积

我正在努力重新实施本文,关键操作是双线性张量积.我几乎不知道这意味着什么,但是纸张有一个很好的小图形,我明白了.

在此输入图像描述

关键操作是e_1*W*e_2,我想知道如何在tensorflow中实现它,因为其余部分应该很容易.

基本上,给定3D张量W,将其切割成矩阵,对于第j个切片(矩阵),将其在每一侧乘以e_1e_2,得到标量,这是结果向量中的第j个条目(输出此操作).

所以我想要执行e_1的乘积,d维向量,W,dxdxk张量,和e_2,另一个d维向量.这个产品能否像现在一样在TensorFlow中简明扼要地表达,还是我必须以某种方式定义自己的操作?

早期编辑

为什么这些张量的乘法不起作用,是否有某种方法可以更明确地定义它以使其有效?

>>> import tensorflow as tf
>>> tf.InteractiveSession()
>>> a = tf.ones([3, 3, 3])
>>> a.eval()
array([[[ 1.,  1.,  1.],
        [ 1.,  1.,  1.],
        [ 1.,  1.,  1.]],

       [[ 1.,  1.,  1.],
        [ 1.,  1.,  1.],
        [ 1.,  1.,  1.]],

       [[ 1.,  1.,  1.],
        [ 1.,  1.,  1.],
        [ 1.,  1.,  1.]]], dtype=float32)
>>> b = tf.ones([3, 1, 1]) …
Run Code Online (Sandbox Code Playgroud)

tensorflow

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

如何干净地绘制statsmodels线性回归(OLS)

问题陈述:

我在pandas数据帧中有一些不错的数据.我想对它进行简单的线性回归:

在此输入图像描述

使用statsmodels,我执行我的回归.现在,我如何得到我的情节?我尝试过statsmodels的plot_fit方法,但情节有点时髦:

在此输入图像描述

我希望得到一条代表回归实际结果的水平线.

Statsmodels有多种绘制回归的方法(这里有一些关于它们的更多细节),但它们似乎都不是超级简单的"只是在数据上绘制回归线" - plot_fit似乎是最接近的东西.

问题:

  • 上面的第一张图片来自熊猫的情节函数,它返回一个matplotlib.axes._subplots.AxesSubplot.我可以轻松地将回归线叠加到该图上吗?
  • 在我忽略的statsmodels中是否有一个函数?
  • 有没有更好的方法来组合这个数字?

两个相关问题:

似乎都没有一个好的答案.

样本数据

按照@IgorRaush的要求

        motifScore  expression
6870    1.401123    0.55
10456   1.188554    -1.58
12455   1.476361    -1.75
18052   1.805736    0.13
19725   1.110953    2.30
30401   1.744645    -0.49
30716   1.098253    -1.59
30771   1.098253    -2.04
Run Code Online (Sandbox Code Playgroud)

abline_plot

我试过这个,但它似乎不起作用......不确定原因:

在此输入图像描述

matplotlib pandas statsmodels

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

如何在进入目录时自动激活virtualenvs

我有很多项目~/Documents.我几乎只在python中工作,所以这些基本上都是python项目.每一个,例如~/Documents/foo都有自己的virtualenv,~/Documents/foo/venv(它们总是被称为venv).每当我在项目之间切换时,每天约10次,我这样做

deactivate
cd ..
cd foo
source venv/bin/activate
Run Code Online (Sandbox Code Playgroud)

我已经到达了我生病了打字的点deactivatesource venv/bin/activate.我正在寻找一种方法,cd ../foo并为我处理virtualenv操作.

  • 我熟悉VirtualEnvWrapper,在我看来这有点笨拙.它似乎将你所有的virtualenvs移动到其他地方,并且据我所知,增加了一些复杂程度.(欢迎反对意见!)

  • 我对shell脚本不太熟悉.如果你可以推荐一个低维护的脚本添加到我~/.zshrc完成这个,这将是绰绰有余,但从一些快速的谷歌搜索,我还没有找到这样的脚本.

  • 我是zsh/ oh-my-zsh用户.oh-my-zsh似乎没有这个插件.这个问题的最佳答案是有人提供oh-my-zsh插件来做到这一点.(如果这里的答案黯淡无光,我可能会这样做.

zsh virtualenv virtualenvwrapper oh-my-zsh

15
推荐指数
8
解决办法
5733
查看次数

没有 KeyError 的 Pandas .loc

>>> pd.DataFrame([1], index=['1']).loc['2']  # KeyError
>>> pd.DataFrame([1], index=['1']).loc[['2']]  # KeyError
>>> pd.DataFrame([1], index=['1']).loc[['1','2']]  # Succeeds, as in the answer below. 
Run Code Online (Sandbox Code Playgroud)

我想要在任何一个都不会失败的东西

>>> pd.DataFrame([1], index=['1']).loc['2']  # KeyError
>>> pd.DataFrame([1], index=['1']).loc[['2']]  # KeyError
Run Code Online (Sandbox Code Playgroud)

是否有类似的函数loc可以优雅地处理这个问题,或者有其他表达这个查询的方式?

pandas

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

tensorflow batch_matmul如何工作?

Tensorflow有一个名为batch_matmul的函数,它可以将更高维的张量相乘.但是我很难理解它是如何工作的,也许部分是因为我很难想象它.

在此输入图像描述

我想要做的是将矩阵乘以3D张量的每个切片,但我不太明白张量a的形状是什么.z是最里面的维度吗?以下哪项是正确的?

在此输入图像描述

我最希望第一个是正确的 - 它对我来说最直观,很容易在.eval()输出中看到.但我怀疑第二个是正确的.

Tensorflow说batch_matmul执行:

out[..., :, :] = matrix(x[..., :, :]) * matrix(y[..., :, :])
Run Code Online (Sandbox Code Playgroud)

那是什么意思?在我的例子中,这意味着什么?什么与什么相乘?为什么我没有按照预期的方式获得3D张量?

numpy scipy tensorflow

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

在travis.ci文件中支持两种语言

我正在构建一个主要是c ++代码的python包(想想numpy)

我的travis文件目前

language: cpp
compiler:
  - gcc
  - clang
os:
  - linux
  - osx
dist: trusty

script: "make pcst_fast_test && ./pcst_fast_test"

notifications: 
...
Run Code Online (Sandbox Code Playgroud)

但是我也在一个名为的文件中编写了一些python测试test_pcst_fast.py.有没有办法从travis中调用那些?

travis是否支持一个文件中的多种语言似乎含糊不清,但似乎大多数人都将其解除了,尽管只在language标签下列出了一种语言.

travis-ci

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

在大文件上,pickle是否会随OSError随机失败?

问题陈述

我正在使用python3并试图挑选一个IntervalTrees字典,重量为2到3 GB.这是我的控制台输出:

10:39:25 - project: INFO - Checking if motifs file was generated by pickle...
10:39:25 - project: INFO -   - Motifs file does not seem to have been generated by pickle, proceeding to parse...
10:39:38 - project: INFO -   - Parse complete, constructing IntervalTrees...
11:04:05 - project: INFO -   - IntervalTree construction complete, saving pickle file for next time.
Traceback (most recent call last):
  File "/Users/alex/Documents/project/src/project.py", line 522, in dict_of_IntervalTree_from_motifs_file
    save_as_pickled_object(motifs, output_dir + 'motifs_IntervalTree_dictionary.pickle')
  File "/Users/alex/Documents/project/src/project.py", line 269, …
Run Code Online (Sandbox Code Playgroud)

python pickle python-3.x

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