Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中更改包加载的优先级_Python_Python 3.x_Pip_Logstash - Fatal编程技术网

在python中更改包加载的优先级

在python中更改包加载的优先级,python,python-3.x,pip,logstash,Python,Python 3.x,Pip,Logstash,我正在做一个基于ELK stack的项目,它基于(你可以在下面看到我的目录结构) 我的python脚本位于src下,现在为了与Logstash交互,我尝试使用包, 在我想用pythonlogstash包提供的示例代码对其进行测试之后,我用pip install pythonlogstash安装了它 import logging import logstash import sys host = 'localhost' test_logger = logging.getLogger('pyt

我正在做一个基于ELK stack的项目,它基于(你可以在下面看到我的目录结构)

我的python脚本位于src下,现在为了与Logstash交互,我尝试使用包, 在我想用
pythonlogstash
包提供的示例代码对其进行测试之后,我用
pip install pythonlogstash
安装了它

import logging
import logstash
import sys

host = 'localhost'

test_logger = logging.getLogger('python-logstash-logger')
test_logger.setLevel(logging.INFO)
test_logger.addHandler(logstash.LogstashHandler(host, 5959, version=1))
# test_logger.addHandler(logstash.TCPLogstashHandler(host, 5959, version=1))

test_logger.error('python-logstash: test logstash error message.')
test_logger.info('python-logstash: test logstash info message.')
test_logger.warning('python-logstash: test logstash warning message.')

# add extra field to logstash message
extra = {
    'test_string': 'python version: ' + repr(sys.version_info),
    'test_boolean': True,
    'test_dict': {'a': 1, 'b': 'c'},
    'test_float': 1.23,
    'test_integer': 123,
    'test_list': [1, 2, '3'],
}
test_logger.info('python-logstash: test extra fields', extra=extra)
但是面对NameError:name'logstash'没有定义这似乎是因为我在项目的根目录中有一个
logstash
目录,它的优先级高于我由pip安装的logstash包

如何解决此问题?

注意:使用
打印(sys.path)
我确信加载的优先级如下

  • 当前目录
  • 你的蟒蛇
  • 依赖于安装的默认设置

有两个名称相同的模块需要解决问题。将模块重命名为除了LogStuff.@ StPiffRuuh之外的其他东西,谢谢您的关注,我正在寻找其他解决方案(它有效,但我认为它是我的最后一颗子弹)@ StPrFrUUCH实际上在我当前的路径中的LogSTASH不是Python包。(其中没有init.py,只包含logstash Dockerfile)