我正在使用安装工具来安装自定义程序包。当我安装它,它工作正常,但如果我去python我能够导入我不打算提供的东西,我想阻止它。
我的setup.py看起来像这样:
from setuptools import setup, find_packages
import os
setup(
name = "MyApp",
version = "0.1.0",
author = "Me",
author_email = "me@gmail.com",
packages = ["theapp"],
package_data = {'theapp': ['../static/*.js', '../static/*.html', '../apps/*', '../resources/*', '../static/*.css', '../static/smore/*']},
url = "https://github.com/Me/MyApp/",
description = "does some stuff",
python_requires = ">3.5",
install_requires = [
"qrcode>=5.3",
"aiohttp>=2.3",
"pyusb>=1.0",
],
entry_points = {
"console_scripts": [
'myapp = myapp:main',
]
},
)
我的目录设置如下:
MyApp/
├── __init__.py
├── apps
│ ├── main.py
│ └── stuff.py
├── myapp
│ ├── __init__.py
│ ├── lib
│ │ ├── base.py
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ └── ui.py
│ ├── __main__.py
│ └── __pycache__
├── resources
│ ├── tex.cls
│ ├── moretex.sty
│ ├── moretexx.sty
│ ├── outfile.pdf
│ └── outfile.tex
├── setup.py
└── static
├── fontawesome-all.js
├── index.html
├── jquery-3.3.1.js
├── smore
│ ├── myapp.css
│ └── myapp.min.js
└── style.css
在python中,我现在可以import myapp
没有问题,但我也可以import static
和import resources
以及import apps
这三个文件都不包含__init__
个文件或任何文件.py
个文件,因此它们无法导入。我的设置文件中有什么问题导致这个问题吗?
编辑:根据hoefling的评论,我尝试将空白 init .py添加到顶级目录,但不需要的目录仍然是可导入的包。有没有办法明确地阻止这个?