我写了一个小python程序,现在我想在系统上安装并使用它。
程序结构:
projectname
|--src
| |--main.py #import file1
| |--file1.py #import file2
| |--file2.py
|--LICENSE
|--README.md
|--setup.py
我做了sudo python setup.py install
,但是现在我只能用/usr/bin/main.py
运行它。我应该怎么做才能只键入projectname
就能运行它?
编辑:Setup.py内容:
setuptools.setup(
name="projectname",
version="0.0.1",
packages=setuptools.find_packages(),
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
entry_points={
"console_scripts": [
"projectname = projectname.src/main:main"
]
},
python_requires='>=3.6',
)
答案 0 :(得分:1)
您可以在setup.py中使用setuptools的entry points。
文档中的示例:
setup(
# other arguments here...
entry_points={
"console_scripts": [
"foo = my_package.some_module:main_func",
"bar = other_module:some_func",
],
"gui_scripts": [
"baz = my_package_gui:start_func",
]
}
)
根据您的结构,创建文件src/__init__.py
:
from . import main
并说这是src/main.py
:
def main():
print("Hello world")
最后,setup.py
可以是:
import setuptools
setuptools.setup(
name="projectname",
version="0.0.1",
packages=setuptools.find_packages(),
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
entry_points={
"console_scripts": [
"projectname = src:main.main"
]
},
python_requires='>=3.6',
)