相关疑难解决方法(0)

如何禁用python警告

我正在处理代码,并使用warnings库抛出了很多(对我而言)无用的警告.阅读(/扫描)文档我只发现了一种禁用单个函数警告的方法.但我不想改变这么多的代码.

可能有旗帜python -no-warning foo.py吗?

你会推荐什么?

python suppress-warnings

350
推荐指数
11
解决办法
49万
查看次数

导入没有.py扩展名的python模块

我有一个名为foobar的文件(没有.py扩展名).在同一目录中,我有另一个试图导入它的python文件:

import foobar
Run Code Online (Sandbox Code Playgroud)

但这只有在我将文件重命名为foobar.py时才有效.是否可以导入没有.py扩展名的python模块?

更新:该文件没有扩展名,因为我也将它用作独立脚本,我不想输入.py扩展名来运行它.

Update2:我将选择下面提到的符号链接解决方案.

python import

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

导入任意python源文件.(Python 3.3+)

如何.pyPython 3.3+中导入任意python源文件(其文件名可以包含任何字符,并不总是以其结尾)?

我使用imp.load_module如下:

>>> import imp
>>> path = '/tmp/a-b.txt'
>>> with open(path, 'U') as f:
...     mod = imp.load_module('a_b', f, path, ('.py', 'U', imp.PY_SOURCE))
...
>>> mod
<module 'a_b' from '/tmp/a-b.txt'>
Run Code Online (Sandbox Code Playgroud)

它仍然适用于Python 3.3,但根据imp.load_module文档,它已被弃用:

从版本3.3开始不推荐使用:不需要使用加载器来加载模块,并且不推荐使用find_module().

imp模块文档建议使用importlib:

注意新程序应使用importlib而不是此模块.

在不使用已弃用的imp.load_module函数的情况下,在Python 3.3+中加载任意python源文件的正确方法是什么?

python python-3.x python-3.3

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

消除scikit-learn的警告

我想在教学时忽略所有包装中的警告,但是scikit-learn似乎可以解决使用warnings包来控制它的问题.例如:

with warnings.catch_warnings():
    warnings.simplefilter("ignore")
    from sklearn import preprocessing

/usr/local/lib/python3.5/site-packages/sklearn/utils/fixes.py:66: DeprecationWarning: inspect.getargspec() is deprecated, use inspect.signature() instead
  if 'order' in inspect.getargspec(np.copy)[0]:
/usr/local/lib/python3.5/site-packages/sklearn/utils/fixes.py:358: DeprecationWarning: inspect.getargspec() is deprecated, use inspect.signature() instead
  if 'exist_ok' in inspect.getargspec(os.makedirs).args:
Run Code Online (Sandbox Code Playgroud)

我是否错误地使用了这个模块,或者是否正在做一些不应该做的事情?

python warnings scikit-learn

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

不推荐使用imp模块

每当我尝试在pycharm中使用"sklearn"时,我在控制台上收到以下错误.

DeprecationWarning:不推荐使用imp模块,而是使用importlib; 请参阅模块的文档以了解替代用途import imp

我不确定它是否应该打扰我,因为程序仍在工作,但它很烦人.我怎么能摆脱它?

我做了一切改变,人们在链接问题中推荐,但错误仍然存​​在.

谢谢

python pycharm scikit-learn

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

如何将python警告重定向到自定义流?

假设我有类似文件的对象,比如StreamIO,并希望python的警告模块向它写入所有警告消息.我怎么做?

python io warnings

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

如何摆脱警告"DeprecationWarning generator'ngrams'提出StopIteration"

在使用Kaggle笔记本时,我遇到了一个问题.以下代码块:

from nltk import ngrams
def grams(tokens):
    return list(ngrams(tokens, 3))
negative_grams = preprocessed_negative_tweets.apply(grams)
Run Code Online (Sandbox Code Playgroud)

结果出现了一个红色的盒子

/opt/conda/bin/ipython:5: DeprecationWarning: generator 'ngrams' raised StopIteration
Run Code Online (Sandbox Code Playgroud)

该变量preprocessed_negative_tweets是包含令牌的Pandas数据帧.

有谁知道如何让它消失?

(这里有完整笔记本)

python ipython nltk kaggle

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

Paramiko /加密技术弃用警告:CryptographyDeprecationWarning:EllipticCurvePublicNumbers弃用了encode_point

执行简单的SSH连接时,我不断收到以下弃用警告:

2019-03-04 02:21:14 [transport] INFO : Connected (version 2.0, client OpenSSH_7.4)
/usr/local/lib/python2.7/site-packages/paramiko/kex_ecdh_nist.py:39: 
  CryptographyDeprecationWarning: encode_point has been deprecated 
  on EllipticCurvePublicNumbers and will be removed in a future 
  version. Please use EllipticCurvePublicKey.public_bytes to obtain 
  both compressed and uncompressed point encoding.
m.add_string(self.Q_C.public_numbers().encode_point())
/usr/local/lib/python2.7/site-packages/paramiko/kex_ecdh_nist.py:96: 
  CryptographyDeprecationWarning: Support for unsafe construction of 
  public numbers from encoded data will be removed in a future version. 
  Please use EllipticCurvePublicKey.from_encoded_point
  self.curve, Q_S_bytes
/usr/local/lib/python2.7/site-packages/paramiko/kex_ecdh_nist.py:111: 
CryptographyDeprecationWarning: encode_point has been deprecated on 
   EllipticCurvePublicNumbers and will be removed in a future version. 
   Please …
Run Code Online (Sandbox Code Playgroud)

python ssh cryptography paramiko python-2.7

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

鼻子测试弃用警告

对于由我的代码导入的第 3 方模块,我收到了来自 nosetest 的弃用警告。

有谁知道如何使这些警告静音?

我知道以下标志适用于相同代码的任意 python 运行:

 python -W ignore::DeprecationWarning
Run Code Online (Sandbox Code Playgroud)

但是,调用鼻子测试似乎并没有为我提供类似的标志来防止警告出现在测试报告中。

python unit-testing deprecated suppress-warnings

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

captureWarnings设置为True不会捕获警告

我想记录所有警告,假设将captureWarnings设置为True应该可以解决问题.但事实并非如此.码:

import logging
import warnings

from logging.handlers import RotatingFileHandler

logger_file_handler = RotatingFileHandler(u'./test.log')
logger_file_handler.setLevel(logging.DEBUG)

logging.captureWarnings(True)

logger = logging.getLogger(__name__)

logger.addHandler(logger_file_handler)
logger.setLevel(logging.DEBUG)

logger.info(u'Test')
warnings.warn(u'Warning test')
Run Code Online (Sandbox Code Playgroud)

我的期望是'警告测试'应该出现在test.log中,但它不仅将'Test'放在日志文件中.

如何捕获所有警告并将其重定向到日志文件?

Python 2.7.5

python logging python-2.7

5
推荐指数
2
解决办法
934
查看次数

新的 Python 3.7 安装会导致集合 DeprecationWarning:

我刚刚在我的 Mac(High Sierra v 10.13.2)上安装了 Python 3.7。当我运行使用 sklearn 的代码时,我收到以下错误消息:

/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/feature_extraction/text.py:17: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working from collections import Mapping, defaultdict
Run Code Online (Sandbox Code Playgroud)

有人知道如何消除这种弃用警告吗?我知道我可以要求 Python 不要显示弃用警告。我想删除弃用警告的原因,而不仅仅是删除警告本身。我想了解的是,我是否可以更改 SKLearn 对集合的使用,或者我是否需要等待 sklearn 完成?

collections python-3.x scikit-learn deprecation-warning

5
推荐指数
0
解决办法
3953
查看次数

抑制 python 中的弃用

所以 - 我正在使用库 pyminizip - 这是我发现创建受密码保护的 zip 文件的唯一方法。当我使用它时,我收到一条弃用警告:“#”格式将需要 PY_SSIZE_T_CLEAN。

现在,我无法控制该库,无法修复它 - 我似乎也没有一个简单的替代方案来使用它 - 而且它工作得很好。因此,弃用警告给我带来了零价值 - 但它干扰了我的工具的 UI - 正如它出现在标准输出上一样。有什么办法可以抑制它/让它消失吗?

我称呼它的方式是:

   import pyminizip
   pyminizip.compress_multiple( [ prod_report ], [], f"C:/temp/report{name}.zip", "Password", 9 )
Run Code Online (Sandbox Code Playgroud)

python deprecated

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