python - Python setup.py 导入 python 文件
问题描述
我尝试使用 setup.py 编写一个名为“欺诈”的包
from setuptools import setup
setup(name='fraud',
version='0.1',
install_requires=[
'gremlinpython==3.3.3',
],
py_modules=['fraud.graph2j',
'fraud.config'],
entry_points = {
'console_scripts': [
'graph2j=fraud.graph2j:main',
]
})
python文件graph2j.py包含
from . import config
import argparse
import os
def main():
print "Hey it works!"
我注意到当我跑步时
python setup.py install
config.py被复制到build/lib/fraud/,当我运行时
graph2j
我明白了
Hey it works!
我想知道是否有一种方法可以不将config.py复制到build/lib/fraud/并且没有在 setup.py 中指定py_modules?现在,如果我从 py_modules 中删除“fraud.config”,我会收到以下错误
Traceback (most recent call last):
File "/Users/[bla]/anaconda2/bin/graph2janus", line 11, in <module>
load_entry_point('fraud==0.1', 'console_scripts', 'graph2j')()
File "/Users/[bla]/anaconda2/lib/python2.7/site- packages/pkg_resources/__init__.py", line 480, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/Users/[bla]/anaconda2/lib/python2.7/site- packages/pkg_resources/__init__.py", line 2691, in load_entry_point
return ep.load()
File "/Users/[bla]/anaconda2/lib/python2.7/site- packages/pkg_resources/__init__.py", line 2322, in load
return self.resolve()
File "/Users/[bla]/anaconda2/lib/python2.7/site- packages/pkg_resources/__init__.py", line 2328, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
File "build/bdist.macosx-10.6-x86_64/egg/fraud/graph2j.py", line 1, in <module>
ImportError: cannot import name config
解决方案
当您说“将我所有的自定义 python 文件复制到库中”时,您的意思是导入它们吗?如果是这样,您可以使用:
import config
如果您不希望配置在被调用之前运行,请添加
if "__name__" == "__main__":
这样它只会在调用配置中的任何内容时运行。
我希望这有帮助!
推荐阅读
- bash - 在 ZSH 中,变量行为不同于 bash
- javascript - 如何将 SVG 转换为 TopoJSON
- css - 图像正确适合 div
- java - 从消息(命令)中删除 @-Tag Discord JDA
- javascript - React Native:从类调用功能组件内部的函数
- loopbackjs - Loopback 4 验证返回 422 未执行,以及如何只需要三个属性之一
- python - psycopg2.extras.DictRow 使用 for 与 next 的行为不同
- python - 在 Python Dataframe 中查找匹配的相似关键字
- rust - 为什么我需要 mod 和 use 才能将模块引入范围?
- kubernetes - minikube 中 Kubernetes 上的 Kafka 无法正常工作