На новой Mac OS X (как и Maverick, так и Yosemite) я получаю странные результаты от pythons pip.Установка модуля для установки python на Mac
Я установил новую версию python в/usr/local/bin/python, а исходная версия python все еще живет в/usr/bin/python. Моя установка python установлена по умолчанию.
which python
/usr/local/bin/python
При установке моего питона модуль, Пип устанавливает всю зависимость для /usr/local/bin/python
которых является правильным. Тем не менее, он добавляет строку she-bang от /usr/bin/python
к консольным скриптам.
Теперь, когда я использую свой консольный скрипт, я получаю ошибку импорта, потому что зависимостей не существует в этой версии python.
я могу исправить это вручную, отредактировав она Взрывы линии
#!/usr/local/bin/python
и все прекрасно.
Итак, вот мой вопрос. Почему это происходит? Почему pip устанавливает все зависимости к одной версии и использует she-bang из другой версии?
Более важный вопрос, как я могу предотвратить это, поэтому любой, кто устанавливает мой модуль, не должен менять эту строку самостоятельно?
Вот мой setup.py:
import sys
from setuptools import setup, find_packages
import foobar
requires = ['pyyaml==3.11',
'six==1.8.0',
'cement==2.4',
'setuptools>=7.0',
'python-dateutil>=2.2',
]
setup_options = dict(
name='foobar',
version=foobar.__version__,
description='Command Line Interface.',
long_description=open('README.rst').read(),
author='Humdinger',
url='example.com',
packages=find_packages('.', exclude=['tests*', 'docs*']),
package_dir={'foobar': 'foobar'},
install_requires=requires,
classifiers=(
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',
'Intended Audience :: System Administrators',
'Natural Language :: English',
'Programming Language :: Python',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.3',
'Programming Language :: Python :: 3.4',
),
entry_points={
'console_scripts': [
'foo=foobar.foo:main'
]
}
)
setup(**setup_options)
По предложению, я добавил строку
#!/usr/bin/env python
на мой setup.py и foo.py файл.
Это не похоже на проблему.
Я также попытался перепробовать новую ОС Mac OSX без установки моей собственной версии python.
$ which python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
$ pip --version
pip 1.5.6 from /Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg (python 2.7)
$ head -1 $(which pip)
#!/usr/bin/python
$ head -1 $(which eb)
#!/usr/bin/python
Как выглядит скрипка вашего консольного скрипта (ов) перед установкой с помощью пипа? – ErlVolton
Консольный скрипт не существует до того, как я установил его с помощью пипа –
Я имел в виду в вашем источнике – ErlVolton