小编Dan*_*ker的帖子

如何在weakref.finalize中引用最终对象?

我有一个类(我无法控制)没有实现自己的清理。我认为这是其中一种情况weakref.finalize,但我无法让它发挥作用。

def cleanup(obj):
    print('Cleanup obj')
    if not obj.is_closed:
        obj.close()
...

def make_obj():
    obj = SomeClass()

    # this creates an extra ref, so cleanup is never run
    weakref.finalize(obj, cleanup, obj)

    # this always results in ReferenceError; obj is already gone when cleanup is called
    weakref.finalize(obj, cleanup, weakref.proxy(obj))  
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?我误解了什么?

python weak-references

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

adb 失败 [DE​​LETE_FAILED_INTERNAL_ERROR]

我正在处理 Elite 6.0L+ Sky 设备上的一个相当严重的恶意软件问题。我正在与恶意软件字节论坛的一位同事合作,试图将其清除。我试图通过命令提示符通过 adb 卸载一些应用程序,但它抛出错误。

adb pm shell pm uninstall com.wouzee.hispanopost 
Run Code Online (Sandbox Code Playgroud)

该命令引发错误:

失败 [DE​​LETE_FAIL_INTERNAL_ERROR]

如果我尝试将其作为

    adb pm shell -k --user 0 uninstall com.wouzee.hispanopost 
Run Code Online (Sandbox Code Playgroud)

然后抛出:失败[0 未安装]

我已经设法使用这些命令卸载其他东西,但是当我尝试删除它们时,我被告知要删除的两个东西都会引发这些相同的错误。

有谁知道如何解决这个问题?

android adb

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

Huggingface AutoTokenizer 无法从本地路径加载

我正在尝试使用我自己的标记生成器从 Huggingface 示例运行语言模型微调脚本(run_language_modeling.py)(刚刚添加了几个标记,请参阅评论)。我在加载分词器时遇到问题。我认为问题出在 AutoTokenizer.from_pretrained('local/path/to/directory') 上。

代码:

from transformers import *

tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased')
# special_tokens = ['<HASHTAG>', '<URL>', '<AT_USER>', '<EMOTICON-HAPPY>', '<EMOTICON-SAD>']
# tokenizer.add_tokens(special_tokens)
tokenizer.save_pretrained('../twitter/twittertokenizer/')
tmp = AutoTokenizer.from_pretrained('../twitter/twittertokenizer/')
Run Code Online (Sandbox Code Playgroud)

错误信息:

OSError                                   Traceback (most recent call last)
/z/huggingface_venv/lib/python3.7/site-packages/transformers/configuration_utils.py in get_config_dict(cls, pretrained_model_name_or_path, pretrained_config_archive_map, **kwargs)
    248                 resume_download=resume_download,
--> 249                 local_files_only=local_files_only,
    250             )

/z/huggingface_venv/lib/python3.7/site-packages/transformers/file_utils.py in cached_path(url_or_filename, cache_dir, force_download, proxies, resume_download, user_agent, extract_compressed_file, force_extract, local_files_only)
    265         # File, but it doesn't exist.
--> 266         raise EnvironmentError("file {} not found".format(url_or_filename))
    267     else:

OSError: file ../twitter/twittertokenizer/config.json not found

During …
Run Code Online (Sandbox Code Playgroud)

huggingface-transformers

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

如何设计Codeforces交互式评分器?

我在 Codeforces 中遇到了一个交互问题。我想知道分级器或交互器(根据 Codeforces 的条款)是如何设计的。

假设我想为这个问题创建一个评分器:1. 猜数字

我对上述问题的解决方案存储在1_Guess_the_Number.py文件中。这是一个正确的解决方案,并被 CF 分级机接受。

#!/usr/bin/env python3

l, r = 1, 1000000
while l != r:
    mid = (l + r + 1) // 2
    print(mid, flush=True)
    response = input()
    if response == "<":
        r = mid - 1
    else:
        l = mid

print("!", l)
Run Code Online (Sandbox Code Playgroud)

我创建了以下grader.py文件:

#!/usr/bin/env python3

import sys

INP = 12


def interactor(n):
    if n > INP:
        return "<"
    return ">="


while True:
    guess = input()
    if …
Run Code Online (Sandbox Code Playgroud)

python

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

signalfd 的替代方案

是否有替代方案signalfd(在 Mac OS X 上不可用)?我正在使用复用 I/O select,并希望以某种同步方式接收信号。

macos signals

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

Django OSError:[Errno 13]权限被拒绝

我是 python 和 Linux 的新手,对于任何混淆提前表示歉意。我正在尝试使用收集我的静态文件

python manage.py collectstatic
Run Code Online (Sandbox Code Playgroud)

但这里有一些错误是我的回溯

> Copying '/var/www/Django/myweb/static/images/test.jpg'
Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/home/test01/Django/VENV/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 363, in execute_from_command_line
    utility.execute()
  File "/home/test01/Django/VENV/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 355, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/test01/Django/VENV/local/lib/python2.7/site-packages/django/core/management/base.py", line 283, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/test01/Django/VENV/local/lib/python2.7/site-packages/django/core/management/base.py", line 330, in execute
    output = self.handle(*args, **options)
  File "/home/test01/Django/VENV/local/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 199, in handle
    collected = self.collect()
  File "/home/test01/Django/VENV/local/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 124, in collect
    handler(path, prefixed_path, storage)
  File "/home/test01/Django/VENV/local/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 364, in copy_file …
Run Code Online (Sandbox Code Playgroud)

python django

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

在 IPython 中运行 ProcessPoolExecutor

我在 MacBook 上的 IPython 解释器(IPython 7.9.0、Python 3.8.0)中运行了一个简单的多处理示例,但遇到了一个奇怪的错误。这是我输入的内容:

[In [1]: from concurrent.futures import ProcessPoolExecutor

[In [2]: executor=ProcessPoolExecutor(max_workers=1)

[In [3]: def func():
             print('Hello')

[In [4]: future=executor.submit(func)
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/multiprocessing/process.py", line 313, in _bootstrap
    self.run()
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)                                   
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/concurrent/futures/process.py", line 233, in _process_worker
    call_item = call_queue.get(block=True)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/multiprocessing/queues.py", line 116, in get
    return _ForkingPickler.loads(res)
AttributeError: Can't get attribute 'func' on <module '__main__' (built-in)>
Run Code Online (Sandbox Code Playgroud)

此外,尝试再次提交作业给了我一个不同的错误:

[In [5]: future=executor.submit(func)                                            
---------------------------------------------------------------------------
BrokenProcessPool                         Traceback (most recent …
Run Code Online (Sandbox Code Playgroud)

python ipython multiprocessing python-3.x

6
推荐指数
2
解决办法
1771
查看次数

如何使用 NumPy 1.4 多项式类来拟合值

如何使用 numpy 中新的 Polynomials 子包为其提供新的 x 值并获得 y 值的输出? https://numpy.org/doc/stable/reference/routines.polynomials.package.html

在 numpy 的早期版本中,它是这样的:

poly = np.poly1d(np.polyfit(x, y, 3)
new_x = np.linspace(0, 100)
new_y = poly(new_x)
Run Code Online (Sandbox Code Playgroud)

新版本我正在努力给它 x 值,从而给我每个值的 y 值?

from numpy.polynomial import Polynomial

poly = Polynomial(Polynomial.fit(x, y, 3))
Run Code Online (Sandbox Code Playgroud)

当我给它一个 x 数组时,它只返回系数。

python numpy

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

当在 DLL 或 .so 中调用函数时,当编译器使用对齐和填充进行自己的结构布局时,为什么传递结构是可靠的?

c 语言结构中的 AFAIK 会按照编译器认为合适的方式进行布局、对齐和填充。这就是为什么你不能依赖一个 c 程序来使用来自另一个 c 程序的结构。例如,您不能将结构另存为另一个 c 程序将读取并转换为同一个结构的二进制文件。您也许可以使用这样的打包结构,但这并不是一个很好的做法。
所以我很惊讶地发现 .so 和 DLL 文件具有将复杂结构(其引用)作为参数的 c 函数。至少我公司的产品是这样做的。这是可靠的,这是好的做法吗?是否有一些大小、对齐和填充都相同的结构布局的新标准?

我知道 64 位程序不能调用 32 位库,但我仍然认为结构布局可能因相同位的编译器而异。

c struct

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

这是抽象的,但具有非虚拟析构函数删除导致错误。这是为什么?

#include <iostream> 
using namespace std;

class Animal{
public:
 virtual void cry() = 0;
 void eat();
};


class Cat:public Animal
{
public:
        virtual void cry();
        void grooming();
};


class Dog:public Animal
{
public:
        virtual void cry();
        void lash();
};


main()
{
    Animal* animal = new Cat();
    animal->eat();
    animal->cry();

    Cat* cat = (Cat*)animal;
    cat->grooming();

    Dog* dog = new Dog();
    dog->cry();
    dog->eat();
    dog->lash();

    delete animal;     //Delete called on'animal' that is abstract but has non-virtual destruct
    delete cat;             //Thread 1: signal SIGABRT
    delete dog; …
Run Code Online (Sandbox Code Playgroud)

c++

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