小编rok*_*rok的帖子

在Python字符串中使用"and"和"or"运算符

我不明白这条线的含义:

parameter and (" " + parameter) or ""
Run Code Online (Sandbox Code Playgroud)

其中parameter是string

为什么人们想要使用andor运算符,一般来说,使用python字符串?

python string boolean-operations

24
推荐指数
3
解决办法
4万
查看次数

仅使用git add暂存已删除的文件

我已经运行git status并查看了几个已修改的文件和几个已删除的文件.是否可以仅删除已删除或仅修改的文件?

git

17
推荐指数
4
解决办法
6587
查看次数

使用autodoc时,Sphinx找不到Python包

我正在尝试为实际项目创建测试Python项目的文档.我的系统:Win7 64位,python 2.7.5 64位.

我的项目名称是testDoc.它包括名为t的 python pakage,它包含2个模块t1t2__init__.py.

__init__.py 包含:

import t1
import t2
Run Code Online (Sandbox Code Playgroud)

t1.py包含:

'''
Created on 27  2013

@author: 
'''

class MyClass(object):
    '''
    Hi
    '''


    def __init__(self,selfparams):
        '''
        Constructor
        '''
        pass
Run Code Online (Sandbox Code Playgroud)

要创建文档,我在testDoc的命令行中运行:

sphinx-apidoc -A "me" -F -o docs .
Run Code Online (Sandbox Code Playgroud)

Sphinx根据Sphinx文档创建了许多文件.然后,conf.py被修改

sys.path.insert(0, os.path.abspath(absolute path to testDoc))
Run Code Online (Sandbox Code Playgroud)

我输入docs文件夹并输入

make html
Run Code Online (Sandbox Code Playgroud)

并获得以下错误输出:

Making output directory...
Running Sphinx v1.1.3
loading pickled environment... not yet created
building …
Run Code Online (Sandbox Code Playgroud)

python documentation python-sphinx

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

将数百万个JSON文档导入MongoDB的最快方法

我有超过1000万个JSON文档的形式:

["key": "val2", "key1" : "val", "{\"key\":\"val", \"key2\":\"val2"}"]
Run Code Online (Sandbox Code Playgroud)

在一个文件中.

使用JAVA Driver API导入大约需要3个小时,同时使用以下功能(一次导入一个BSON):

public static void importJSONFileToDBUsingJavaDriver(String pathToFile, DB db, String collectionName) {
    // open file
    FileInputStream fstream = null;
    try {
        fstream = new FileInputStream(pathToFile);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        System.out.println("file not exist, exiting");
        return;
    }
    BufferedReader br = new BufferedReader(new InputStreamReader(fstream));

    // read it line by line
    String strLine;
    DBCollection newColl =   db.getCollection(collectionName);
    try {
        while ((strLine = br.readLine()) != null) {
            // convert line by line to …
Run Code Online (Sandbox Code Playgroud)

java import performance json mongodb

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

如何使用Mongo DB JAVA驱动程序从MongoDB中的数据库中删除集合?

使用mongo.exe客户端键入以下命令(假设集合coll存在):

> use database
switched to db database
>db.coll.drop()
True
Run Code Online (Sandbox Code Playgroud)

如何使用Mongo DB JAVA驱动程序执行db.coll.drop()?

java mongodb

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

将 args 从 docker-compose 传递给 Dockerfile

我有我的 prod env 的下一个配置:

docker-compose-prod.yml

version: '3.3'
services:
  nginx:
    build:
      context: nginx
      dockerfile: Dockerfile
      args:
        LANDING_PAGE_DOMAIN: ${LANDING_PAGE_DOMAIN}
    container_name: nginx   
    networks:
      - app-network
Run Code Online (Sandbox Code Playgroud)

文件

FROM nginx:alpine

COPY nginx.conf /etc/nginx/nginx.conf
COPY production/* /etc/nginx/conf.d/

ARG LANDING_PAGE_DOMAIN
RUN sed -i s/{LANDING_PAGE_DOMAIN}/${LANDING_PAGE_DOMAIN}/g /etc/nginx/conf.d/landing.conf

EXPOSE 80 443
Run Code Online (Sandbox Code Playgroud)

因此,当我尝试构建它时,我收到了下一个警告:

docker-compose -f docker-compose.production.yml build --build-arg LANDING_PAGE_DOMAIN="test.com" nginx
Run Code Online (Sandbox Code Playgroud)

警告:未设置 LANDING_PAGE_DOMAIN 变量。默认为空字符串。

我哪里做错了?

docker dockerfile docker-compose

11
推荐指数
3
解决办法
7449
查看次数

rabbitmq系统用户密码

它写在RabbitMQ服务器的文档

设置为以系统用户rabbitmq运行

用户的默认密码是什么?

rabbitmq

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

将非 pid 1 进程的输出重定向到 docker 日志

如何将非 pid 1 进程的日志重定向到dockerlogs,最终目标是将它们重定向到gelf

docker容器中有 2 个进程:

1) pid 1 进程

2) 非 pid 1 进程写入路径中的日志文件

关注docker docs 特别是

nginx官方镜像创建了一个从/dev/stdout到/var/log/nginx/access.log的符号链接,并创建了另一个从/dev/stderr到/var/log/nginx/error.log的符号链接,覆盖了日志文件并导致日志被发送到相关的特殊设备。

没有帮助。只有pid 1进程日志被重定向到dockerlogs

执行的步骤:

1ln -sf /dev/stdout _path_Dockerfile 中

2 将更新后的镜像作为容器运行。

3docker logs -f _containerid_ 只显示pid 1进程的日志

还有另一个官方 docker 源

哪个州

Docker 支持不同的日志驱动程序,用于存储和/或流式传输主容器进程(pid 1)的容器标准输出和标准错误日志

所以这可能是没有看到非pid 1进程日志的原因。

尽管如此,仍然不明白为什么ln -sf /dev/stdout /var/log/mysql/error.log创建的符号链接不起作用。

docker gelf

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

使用KMeans算法和Python对地理位置坐标(纬度,长对)进行聚类

使用以下代码聚类地理位置坐标会产生3个聚类:

    import numpy as np
    import matplotlib.pyplot as plt
    from scipy.cluster.vq import kmeans2, whiten

    coordinates= np.array([
               [lat, long],
               [lat, long],
                ...
               [lat, long]
               ])
    x, y = kmeans2(whiten(coordinates), 3, iter = 20)  
    plt.scatter(coordinates[:,0], coordinates[:,1], c=y);
    plt.show()
Run Code Online (Sandbox Code Playgroud)

使用Kmeans进行位置聚类是否正确,因为它使用欧几里德距离而非使用Haversine公式作为距离函数?

python numpy geolocation scipy k-means

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

使用 Popen.wait() 时重现死锁

从使用Popen.wait()的文档可以:

当使用 stdout=PIPE 和/或 stderr=PIPE 并且子进程向管道生成足够的输出时死锁,从而阻止等待 OS 管道缓冲区接受更多数据。使用communication() 来避免这种情况。

在交流文档中,它写道:

读取的数据是缓存在内存中的,所以如果数据量很大或者没有限制就不要使用这种方式

如何重现这种有问题的行为并看到使用Popen.communicate()修复它?

死锁意味着持有资源的进程之间会发生一些循环等待并且永远卡住。这里的循环依赖是什么?等待子进程终止的 Python 进程是一种等待。另一个是什么?在下面的场景中,谁在等待什么?

它阻止等待 OS 管道缓冲区接受更多数据

python deadlock subprocess popen python-3.x

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