更改python中包加载的优先级

时间:2018-07-29 05:36:59

标签: python python-3.x pip logstash

我正在基于ELK堆栈的项目上,它基于Elk Docker structure,(您可以在下面的

中看到我的目录结构

enter image description here

我的python脚本位于 src 下,现在为了与Logstash进行交互,我尝试使用https://github.com/vklochan/python-logstash软件包, 我想通过pip install python-logstash软件包提供的示例代码对其进行测试后,将其与python-logstash一起安装

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:名称'logstash'未定义,这似乎是因为我在项目的根目录中有一个logstash目录,它的优先级高于我已通过pip安装的logstash软件包

如何解决此问题?

通知:使用print(sys.path),我已经确定加载优先级如下

  • 当前目录
  • 您的PYTHONPATH
  • 与安装有关的默认设置

0 个答案:

没有答案