小编rom*_*inf的帖子

如何刷新sys.path?

我在作为用户执行脚本期间安装了一些软件包.这些包是第一个用户包,所以python没有添加~/.local/lib/python2.7/site-packagessys.path之前的脚本运行.我想导入这些已安装的软件包.但我不能,因为他们不在sys.path.

我怎么刷新sys.path

我正在使用python 2.7.

python packages reload sys.path python-2.7

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

如何使用类方法使用memory_profiler(python模块)?

我想分析类方法的时间和内存使用情况.我没有找到这一个彻头彻尾的现成的解决方案(有没有这样的模块?),我决定使用timeit时间分析和memory_usagememory_profiler模块.

我遇到了分析方法的问题memory_profiler.我尝试了不同的变体,但没有一个变得有效.

当我尝试使用partial from时functools,我收到此错误:

File "/usr/lib/python2.7/site-packages/memory_profiler.py", line 126, in memory_usage
  aspec = inspect.getargspec(f)
File "/usr/lib64/python2.7/inspect.py", line 815, in getargspec
  raise TypeError('{!r} is not a Python function'.format(func))
TypeError: <functools.partial object at 0x252da48> is not a Python function
Run Code Online (Sandbox Code Playgroud)

顺便说一下,完全相同的方法与timeit函数一起工作.

当我尝试使用时lambda,我收到此错误:

File "/usr/lib/python2.7/site-packages/memory_profiler.py", line 141, in memory_usage
  ret = parent_conn.recv()
IOError: [Errno 4] Interrupted system call
Run Code Online (Sandbox Code Playgroud)

如何使用memory_profiler处理类方法?

PS:我有内存分析器(0.26)(用pip安装).

UPD:实际上是bug.你可以在这里查看状态:https://github.com/fabianp/memory_profiler/issues/47

python methods profiling memory-profiling functools

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

打印执行的命令

如何在鱼壳中打印执行的命令?

我已经尝试过在shell脚本中提供解决方案:在执行命令时回显shell命令,但是它们与fish shell不兼容。

unix shell fish

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

尽管包中包含 py.typed 标记,但发行版中不包含存根文件

我已经向有序集贡献了存根文件。为了包含存根文件,我遵循MyPyPEP-561 的建议。但是当我这样做时,我得到了没有文件的分发:python setup.py sdistordered_set.pyi

$ tar -tvf dist/ordered-set-*.tar.gz --wildcards '*pyi'
tar: *pyi: Not found in archive
tar: Exiting with failure status due to previous errors
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

另外,distutils库中与存根文件包含相关的代码在哪里?我已经搜索它以尝试调试我的问题,但没有找到任何东西。

python distutils type-hinting python-3.x

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

动态将字段添加到数据类对象

我正在编写一个访问REST API的库。它返回带有用户对象的json。我将其转换为dict,然后将其转换为dataclass对象。问题在于,并非所有字段都是固定的。我想动态添加其他字段(在我的数据类中未指定)。我可以简单地为我的对象分配值,但是它们不会出现在对象表示中,并且dataclasses.asdict函数也不会将它们添加到结果字典中:

from dataclasses import asdict, dataclass

@dataclass
class X:
    i: int

x = X(i=42)
x.s = 'text'

x
# X(i=42)

x.s
# 'text'

asdict(x)
# {'i': 42}
Run Code Online (Sandbox Code Playgroud)

python field dynamic python-3.x python-dataclasses

4
推荐指数
2
解决办法
1026
查看次数

如何使用 dill 库通过 shelve 库进行对象序列化

我正在使用PyMemoize库来缓存协程。我装饰了协程,但是当 Python 调用它时,我得到:

TypeError: can't pickle coroutine objects
Run Code Online (Sandbox Code Playgroud)

发生这种情况是因为PyMemoize内部尝试腌制协程并将其存储在 Redis 中。为此,它使用shelve.Shelf,而后者又使用pickle. 问题是,由于未知的原因,pickle不支持 pickling 协程。

我尝试用它来腌制协程dill并且它有效。我如何知道shelve用作dill序列化后端?

我尝试过猴子补丁shelve,但没有成功(我不知道为什么):

TypeError: can't pickle coroutine objects
Run Code Online (Sandbox Code Playgroud)

python shelve pickle coroutine dill

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

描述 CoNLL 2003 NER 任务的可能标签列表是什么?

我需要做一些NER。我发现DeepPavlov库可以做到这一点。

这是文档中的示例:

from deeppavlov import configs, build_model

ner_model = build_model(configs.ner.ner_ontonotes, download=True)
ner_model(['Bob Ross lived in Florida'])
>>> [[['Bob', 'Ross', 'lived', 'in', 'Florida']], [['B-PERSON', 'I-PERSON', 'O', 'O', 'B-GPE']]]
Run Code Online (Sandbox Code Playgroud)

我不明白所有这些标签的含义。据我从文档中了解到,它们采用 CoNLL 2003 NER 任务格式。

有人可以给我指出可能的标签列表以及 CoNLL 2003 NER 任务的描述吗?

tags named-entity-recognition conll

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