python pypi包模块可见性
我刚刚发布了一篇文章,但是在我自己安装了它之后,我发现有很多不应该安装的可见模块 实际上,我只想看到两个函数(python pypi包模块可见性,python,package,pypi,Python,Package,Pypi,我刚刚发布了一篇文章,但是在我自己安装了它之后,我发现有很多不应该安装的可见模块 实际上,我只想看到两个函数(super\u clean和simple\u clean),它们都在gutenberg\u cleaner.py中 我不知道如何使其他模块和功能对用户隐藏 任何帮助都将不胜感激 这是我的setup.py,如果有用: from setuptools import setup with open('README.md') as f: long_description = f.rea
super\u clean
和simple\u clean
),它们都在gutenberg\u cleaner.py
中
我不知道如何使其他模块和功能对用户隐藏
任何帮助都将不胜感激
这是我的setup.py
,如果有用:
from setuptools import setup
with open('README.md') as f:
long_description = f.read()
setup(
name="gutenberg_cleaner",
install_requires=['nltk'],
version='0.1.0',
description="cleans gutenberg dataset books",
author_email='mohsenikiasari@ce.sharif.edu',
py_modules=["gutenberg_cleaner"],
url="https://github.com/kiasar/gutenberg_cleaner",
license='MIT',
long_description=long_description,
classifiers=[
"Programming Language :: Python",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Operating System :: OS Independent",
],
)
一般来说,Python中没有“隐藏”给定变量/函数/类/模块的方法。所有内容都可以导入到用户,即使是标准库中的内容 实际上,Python习惯于在不属于公共API的内容前加下划线,例如:
来自gutenberg\u cleaner import\u internal\u helper\u方法
这向了解此习惯用法的用户表示“这不是要导入的”
这实际上并不能阻止用户导入这个内部函数,但对于大多数项目来说,这已经足够了(我认为这是您应该在这里做的)
这就是说,还有另一种选择:有一个第三方库,它可以精确地执行您想要的操作:您定义一个可以导入的函数列表,该库阻止导入其余的函数。它没有被广泛使用,但它确实解决了你的问题