小编SmC*_*lar的帖子

如何使pyCharm停止隐藏(展开)我的Python导入?

每次打开Python文件时,PyCharm都会隐藏所有导入并显示:

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

在编辑器内.

我必须手动展开它以查看导入.在哪里可以找到撤消import语句自动隐藏的设置?

python import code-folding pycharm

72
推荐指数
2
解决办法
6040
查看次数

了解多处理:Python中的共享内存管理,锁和队列

多处理是python中一个强大的工具,我想更深入地理解它.我想知道何时使用常规 队列以及何时使用多处理管理器在所有进程之间共享这些.

我提出了以下测试场景,其中包含四种不同的多处理条件:

  1. 使用池和NO管理器

  2. 使用池和管理器

  3. 使用单个流程和NO Manager

  4. 使用单个进程和Manager

工作

所有条件都执行作业功能the_job.the_job由一些由锁固定的印刷组成.此外,函数的输入只是放入队列(以查看它是否可以从队列中恢复).该输入是一个简单的索引idxrange(10)在称为主脚本创建start_scenario(在底部示出).

def the_job(args):
    """The job for multiprocessing.

    Prints some stuff secured by a lock and 
    finally puts the input into a queue.

    """
    idx = args[0]
    lock = args[1]
    queue=args[2]

    lock.acquire()
    print 'I'
    print 'was '
    print 'here '
    print '!!!!'
    print '1111'
    print 'einhundertelfzigelf\n'
    who= ' By run %d \n' …
Run Code Online (Sandbox Code Playgroud)

python locking multiprocessing python-multiprocessing

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

Python 3.4和2.7:无法为python 3.4安装numpy包

我正在使用Ubuntu 12.04并希望与python 2.7并排使用python 3.4.

python 3.4的安装工作正常.但是,我无法安装python 3的numpy包(因此我无法安装scipy,pandas等).

运用

 sudo pip3 install numpy
Run Code Online (Sandbox Code Playgroud)

吐出以下错误:

File "numpy/core/setup.py", line 289, in check_types

"Cannot compile 'Python.h'. Perhaps you need to "\

SystemError: Cannot compile 'Python.h'. Perhaps you need to install python-dev|python-devel.
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我已经安装了python-dev.

而且,安装numpy via

 sudo apt-get install python-numpy
Run Code Online (Sandbox Code Playgroud)

不起作用,因为我已经为python 2.7安装了numpy,安装程序响应numpy已经是最新的.

我能做什么?谢谢!

python ubuntu numpy pip python-3.4

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

Python代码覆盖和多处理

我将工作服coverage.py结合使用来跟踪测试脚本的python代码覆盖率.我使用以下命令:

coverage run --parallel-mode --source=mysource --omit=*/stuff/idont/need.py ./mysource/tests/run_all_tests.py
coverage combine
coveralls --verbose
Run Code Online (Sandbox Code Playgroud)

除了多处理之外,这非常有效.不跟踪工作池或子进程执行的代码.

是否有可能跟踪多处理代码?我遗失的任何特定选项?可能会在多处理库中添加包装器,以便在每次生成新进程时开始覆盖?

编辑:

我(和jonrsharpe,也:-)发现了一个用于多处理猴子补丁.

但是,这对我不起作用,我的Tracis-CI版本几乎在开始后就被杀死了.我检查了我的本地机器上的问题,显然是将补丁添加到多处理程序中破坏了我的记忆.使用此修复程序,占用少于1GB内存的测试需要超过16GB.

编辑2:

猴子补丁在经过一些小修改后确实有效:删除config_file解析(config_file=os.environ['COVERAGE_PROCESS_START'])就可以了.这解决了臃肿记忆的问题.因此,相应的行简单地变为:

cov = coverage(data_suffix=True)
Run Code Online (Sandbox Code Playgroud)

python code-coverage multiprocessing coverage.py coveralls

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

Python sphinx autosummary错误

我有一个sphinx文档,当我包含以下行时:

.. currentmodule:: myMod

.. autosummary::

  MyClass
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

ERROR: Unknown directive type "autosummary".
Run Code Online (Sandbox Code Playgroud)

然而,autosummary从版本0.6开始可用,我使用Sphinx 1.1.3.

什么可能导致问题?谢谢!

编辑:为了使它更清楚我在谈论python-sphinx,文档工具.

python python-sphinx

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

Python Sphinx Autosummary:成员函数的自动列表

如何判断自动扩展扩展不仅列出单个类,还列出所有类的成员?

如果我使用:

.. autosummary::

    MyClass
Run Code Online (Sandbox Code Playgroud)

在生成的html文件中,只有一个简短的摘要,如:

MyClass(var1,var2,....)我的自定义类来做奇特的事情......

我真正想要的是:

MyClass(var1,var2,....)我的自定义类来做奇特的事情......

MyClass.doA(var1,var2,...)做得很好

MyClass.doB(var1,var2,...)B更好

我如何配置autosummary指令才能得到这个(除了在autosummary指令中自己命名所有函数)?谢谢!

python python-sphinx

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

在Sphinx文档中保留包装/修饰Python函数的默认参数

我怎么能代替*args**kwargs与装饰功能的文档中的真实签名?

假设我有以下装饰器和装饰功能:

import functools

def mywrapper(func):
    @functools.wraps(func)
    def new_func(*args, **kwargs):
        print('Wrapping Ho!')
        return func(*args, **kwargs)
    return new_func

@mywrapper
def myfunc(foo=42, bar=43):
    """Obscure Addition

    :param foo: bar!
    :param bar: bla bla
    :return: foo + bar

    """
    return foo + bar
Run Code Online (Sandbox Code Playgroud)

因此,通话print(myfunc(3, 4))给我们:

Wrapping Ho!
7
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.我还希望我的库包含myfunc与Sphinx一起正确记录的文件.但是,如果我通过以下方式将我的函数包含在我的sphinx html页面中:

.. automodule:: mymodule
    :members: myfunc
Run Code Online (Sandbox Code Playgroud)

它实际上会显示为:

myfunc(*args,**kwargs)

模糊的加法

  • 参数:
    • foo:吧!
    • :bla bla
  • 返回: foo + bar

我怎样才能摆脱myfunc(*args, **kwargs)标题中的泛型?这应该被myfunc替换(foo = …

python documentation decorator python-sphinx python-decorators

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

熊猫:在每组中按平均值填充缺失值比转换更快

我需要通过每组中的平均值填充pandas DataFrame中的缺失值.根据这个问题 transform可以实现这一点.

但是,transform对我来说太慢了.

例如,对具有100个不同组和70%NaN值的大型DataFrame进行以下设置:

import pandas as pd
import numpy as np

size = 10000000  # DataFrame length
ngroups = 100  # Number of Groups

randgroups = np.random.randint(ngroups, size=size)  # Creation of groups
randvals = np.random.rand(size) * randgroups * 2    # Random values with mean like group number
nan_indices = np.random.permutation(range(size))    # NaN indices
nanfrac = 0.7                                       # Fraction of NaN values
nan_indices = nan_indices[:int(nanfrac*size)]       # Take fraction of NaN indices
randvals[nan_indices] = …
Run Code Online (Sandbox Code Playgroud)

python nan mean pandas python-3.5

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

鉴于 python 中的泡菜转储,我如何确定使用的协议?

假设我有一个泡菜转储——无论是作为一个文件还是一个字符串——我如何确定用于自动创建泡菜转储的协议?

如果是这样,我是否需要阅读整个转储来找出协议,还是可以在 O(1) 中实现?通过 O(1),我考虑了 pickle 字符串或文件开头的一些标头信息,其读出不需要处理整个转储。

非常感谢!

编辑:我对此有一个更新,显然下面给出的答案在python 3.4下并不总是有效。如果我只是True用协议 1腌制值,有时我只能恢复协议 0 :-/

python pickle

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

在PyCharm中使用nosetests,python 2和3并排安装

我试图在PyCharm(2.7.3)中使用与python 2和3并排的鼻子测试.

在python 2.7下一切正常,但是python 3.4中的任何测试都会失败并出现以下错误:

Traceback (most recent call last):
  File "/home/robert/Programme/pycharm-2.7.3/helpers/pycharm/noserunner.py", line 91, in <module>
    process_args()
  File "/home/robert/Programme/pycharm-2.7.3/helpers/pycharm/noserunner.py", line 88, in process_args
    TestProgram(argv=argv, config=config)
  File "/usr/local/lib/python3.4/dist-packages/nose/core.py", line 121, in __init__
    **extra_args)
  File "/usr/lib/python3.4/unittest/main.py", line 93, in __init__
    self.runTests()
  File "/usr/local/lib/python3.4/dist-packages/nose/core.py", line 207, in runTests
    result = self.testRunner.run(self.test)
  File "/usr/local/lib/python3.4/dist-packages/nose/core.py", line 62, in run
    test(result)
  File "/usr/local/lib/python3.4/dist-packages/nose/suite.py", line 177, in __call__
    return self.run(*arg, **kw)
  File "/usr/local/lib/python3.4/dist-packages/nose/suite.py", line 224, in run
    test(orig)
  File "/usr/local/lib/python3.4/dist-packages/nose/suite.py", line 177, in __call__
    return self.run(*arg, **kw) …
Run Code Online (Sandbox Code Playgroud)

nose nosetests pycharm python-2.7 python-3.x

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