6 python pip setuptools easy-install python-2.7
我在python中第一次打包脚本.它可以用作模块和可执行文件,所以我发现我可以使用它
entry_points = {
'console_scripts': [
'myscript = myscript:main',
],
}
Run Code Online (Sandbox Code Playgroud)
在我setup.py
自动生成用户python-x.x.x/bin
目录中的脚本.
我的python脚本以.结尾
if __name__ == '__main__': main()
Run Code Online (Sandbox Code Playgroud)
其中main()
解析命令行输入.
我使用命令打包它:
python setup.py sdist
Run Code Online (Sandbox Code Playgroud)
然后测试分布为:
easy_install dist/myscript-0.3.2.tar.gz
Run Code Online (Sandbox Code Playgroud)
这将myscript
可执行文件放入我python-2.7.5/bin
的预期中.
但这不是:
pip install dist/myscript-0.3.2.tar.gz
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?我的目录树看起来像:
Root/
|-- MANIFEST.in
|-- README.rst
|-- dist
| `-- myscript-0.3.2.tar.gz
|-- myscript.egg-info
| |-- ...
|-- myscript.py
|-- setup.cfg
|-- setup.py
`-- test
|-- ...
Run Code Online (Sandbox Code Playgroud)
我的setup.py
粗略看起来像:
import os
from setuptools import setup
def read(*paths):
"""Build a file path from *paths* and return the contents."""
with open(os.path.join(*paths), 'r') as f:
return f.read()
setup(
name='myscript',
version='0.3.2',
description='bla',
long_description=(read('README.rst')),
url='http://url',
license='LGPL',
author='Me',
author_email='me@me.com',
py_modules=['myscript'],
include_package_data=True,
classifiers=[
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',
'Natural Language :: English',
'License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)',
'Operating System :: OS Independent',
'Programming Language :: Python',
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 2.7',
'Topic :: Software Development :: Libraries :: Python Modules',
],
install_requires=['Texttable'],
entry_points = {
'console_scripts': [
'myscript = myscript:main',
],
}
)
Run Code Online (Sandbox Code Playgroud)
pip install .
我也有过类似的不从项目目录工作的经历。事实证明,pip 并未执行所有 setup.py 逻辑,因为它假设已经满足了对我的项目的依赖关系,因为我的包位于 sys.path 中,其中包括工作目录。我找到了三个解决方法。我可以使用可编辑或升级标志来强制它安装所有内容:
pip install --editable .
-- 可能有效(但取决于本地 pip 配置)
pip install --upgrade .
——作品
pip install --upgrade-strategy=only-if-needed .
--不起作用
或者我可以转到不同的工作目录并使用项目目录的绝对路径执行它:
pip install $HOME/src/project_dir
归档时间: |
|
查看次数: |
2166 次 |
最近记录: |