1

我正在使用安装工具来安装自定义包。当我安装它时,它工作正常,但如果我使用 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 resourcesimport apps__init__.py

编辑:根据 hoefling 的评论,我尝试将空白的init .py 添加到顶级目录,但不需要的目录仍然成为可导入的包。有没有办法明确防止这种情况?

4

0 回答 0