Nic*_*eet 6 python egg setuptools setup.py
我是setuptools第一次使用,并尝试打包我的代码,以便其他人可以轻松地开发它.我在虚拟环境中运行一切.
简短的问题:如何在运行时更改egg-link指向的目录python setup.py develop?
长问题:我正在开发的模块被称为cops_and_robots.当我跑步时python setup.py install,事情很好,我可以导入我的cops_and_robots模块.但是,当我运行时python setup.py develop,运行import cops_and_robots失败,因为cops_and_robots.egg-link指向错误的目录:
(cops_and_robots)Antares:cops_and_robots nick$ cat ~/virtual_environments/cops_and_robots/lib/python2.7/site-packages/cops-and-robots.egg-link
/Users/nick/Downloads/cops_and_robots/
.
Run Code Online (Sandbox Code Playgroud)
这是目录结构:
|____Downloads
| |____cops_and_robots # the whole package directory
| | |____...
| | |____requirements.txt
| | |____setup.py
| | |____src
| | | |____cops_and_robots # the python package directory
| | | |______init.py__
| | |____...
Run Code Online (Sandbox Code Playgroud)
我的setup.py:
from setuptools import setup, find_packages
import ez_setup
ez_setup.use_setuptools()
setup(
# Author information and Metadata
name='cops_and_robots',
# Package data
packages=find_packages('src'),
package_dir={'cops_and_robots':'src/cops_and_robots'},
include_package_data=True,
platforms='any',
requires=['std_msgs','rospy'],
tests_require=['pytest'],
install_requires=[i.strip() for i in open("requirements.txt").readlines()],
)
Run Code Online (Sandbox Code Playgroud)
手动修复只是附加src/cops_and_robots到cops_and_robots.egg-link文件,但我正在寻找一种更优雅的方式来做到这一点.
对于您的迫切需求可能为时已晚,但setuptools devel安装已经存在了很长时间.幸运的是,有一个简单的解决方法可能适用于您的情况.试试改变:
# Package data
packages=find_packages('src'),
package_dir={'cops_and_robots':'src/cops_and_robots'},
Run Code Online (Sandbox Code Playgroud)
至
# Package data
packages=find_packages('src'),
package_dir={'':'src'},
Run Code Online (Sandbox Code Playgroud)
在你的setup.py脚本中.
这种情况应该与之相关setuptools setup.py devel,因此pip install -e也适用.
有关此问题的更多背景信息,请参阅以下链接:
| 归档时间: |
|
| 查看次数: |
1102 次 |
| 最近记录: |