【发布时间】:2020-03-29 19:01:09
【问题描述】:
我在排除 setup.py 文件中的文件时遇到问题。首先我展示项目结构。
myscript
├── myscript
│ ├── tests.py
│ └── myscript.py
├── README.md
├── LICENSE
└── setup.py
setup.py文件内容如下:
# -*- coding: utf-8 -*-
from setuptools import setup, find_packages
with open('README.md') as f:
long_description = f.read()
setup(name = 'myscript',
version = "1.0",
description = 'Example desc',
long_description = long_description,
long_description_content_type = 'text/markdown; charset=UTF-8',
license = 'MIT',
author = 'Jalkhov',
author_email = 'jalkhov@gmail.com',
packages = find_packages('myscript', exclude=['tests.py']),
entry_points={
'console_scripts': [
'myscript=myscript.myscript:main',
],
},
)
当我使用这样的文件运行 python setup.py sdist 并安装它为我生成的 .tar.gz 文件时,它会正确安装,但是当我尝试从控制台,它会抛出以下错误:
File "C:\Users\myuser\AppData\Local\Programs\Python\Python37-32\Scripts\myscript.exe.main__.py", line 4, in <module>ModuleNotFoundError: No module named 'myscript'
然后我检查了site-packages 文件夹,我找到的唯一与脚本有关的是myscript-1.0.dist-info 文件夹
但是当我修改包行并像这样离开时:
packages = ["myscript"],
我安装了,一切运行正常,但我要排除的文件已包含在 site-packages 文件夹中。
似乎通过使用find_packages 函数,我并不关心脚本的主文件夹。
【问题讨论】:
标签: python python-3.x setuptools