几天前,我创建了一个名为pyblime的小项目,现在我正在尝试如何创建一个合适的setup.py,它允许我将“正确的东西”上传到PyPi,这样用户就可以通过使用pip
享受这个项目,而不必做任何“过于花哨”的事情,比如调用花哨的自定义开发脚本,现在,项目树结构如下所示:
│ .gitignore
│ configure.py
│ MANIFEST.in
│ README.md
│ requirements.txt
│ setup.py
│
├───data
│ ├───commands
│ │ comment.py
│ │ fold.py
│ │
│ ├───screenshots
│ │ test_simple.png
│ │ test_themes.gif
│ │
│ ├───st_build_3149
│ │ ├───syntax
│ │ └───themes
│ └───testfiles
├───docs
│ build.md
│ contributing.md
│ guidelines.md
│ usage.md
│
├───examples
│ demo_00.py
│ tutorials.py
│ tutorial_00.py
│ tutorial_01.py
│ tutorial_02.py
│ tutorial_03.py
│ tutorial_04.py
│ tutorial_05.py
│ tutorial_06.py
│
├───pyblime
│ utils.py
│ view.py
│ __init__.py
│
├───sublime_text
│ sublime.py
│ sublime_plugin.py
│
└───tests
run_all.py
test_scopes.py
test_view.py
x.py
除了一个问题,我还有几个简单的疑问:
sublime_text/sublime.py
和sublime_text/sublime_plugin.py
文件复制到Lib/site-packages
根目录的“标准”方法是什么李>pyblime
临时复制到Lib/site-packages
的李>现在我的setup.py如下所示:
from pathlib import Path
from setuptools import setup
root_path = Path(__file__).parent
requirements = (root_path / "requirements.txt").read_text()
requirements = [
v for v in requirements.split("\n")
if v.strip() and not v.strip().startswith("#")
]
readme = (root_path / "README.md").read_text()
setup(
author="mcve",
author_email="mcve",
classifiers=["mcve"],
description="mcve",
install_requires=requirements,
keywords=["mcve"],
long_description=(root_path / "README.md").read_text(),
name="mcve",
# package_data = {}, <---- How do i use this?
# packages = [], <---- Do I need to use this?
url="mcve",
version="0.0.1",
)
还有,是的。。。我已经看过官方关于包装的文件了。。。但如果我理解了那些文件,我就不会这么问这个问题了;D。提前谢谢
好吧,让我们一步一步来
第一个问题。大多数情况下,您不应该这样做,相反,您也应该将
sublime_text
视为一个包。结构应如下所示:您应该像在其他包中一样使用它。这可能会更好,因为您不会太多地污染全局命名空间。或者,如果这不是您想要在许多其他包之间共享的公共包,您可以直接将其作为子模块包含在主包中
或者如果您真的想这样做,可以将这两个文件放在根目录中并使用:
关于第二个问题。因为这是一个包,所以可以将该路径添加到包:
packages=[""]
。或者为了方便起见,您可以使用packages=find_packages()
。它将帮助您在当前目录""
下查找所有包关于你的第三个问题。大多数情况下是不正确的,您只需要将用户需要的内容提交给PyPi。对于
docs
,您应该使用readthedocs网站。对于其他示例和测试,只需将它们留在Github上。够了相关问题 更多 >
编程相关推荐