설치시 파이썬 파일을 생성하고 싶습니다.파이썬 패키징 : 설치시 파이썬 파일 생성하기, 독극물로 작업하기
python setup.py develop
, python setup.py install
및 pip install
모두와 함께이 작품을 원합니다. 여태까지는 그런대로 잘됐다.
그러나이 또한 tox과 함께 사용하기를 원합니다. 이것은 내가 문제가있는 곳입니다.
# make code as python 3 compatible as possible
from __future__ import absolute_import, division, print_function, unicode_literals
import subprocess
import setuptools
import os.path
import distutils.core
from setuptools.command.develop import develop
from setuptools.command.install import install
# Build anltr files on installation
# this is such a mess... it looks like there are
# no common steps to develop and install
class AntlrDevelopCommand(develop):
def run(self):
compile_grammar()
develop.run(self)
class AntlrInstallCommand(install):
def run(self):
compile_grammar()
install.run(self)
def compile_grammar():
here = os.path.dirname(__file__) or '.'
package_dir = os.path.join(here, 'latex2sympy')
subprocess.check_output(['antlr4', 'PS.g4', '-o', 'gen'], cwd=package_dir)
setuptools.setup(
name='latex2sympy',
version=0.1,
author='august.codes',
author_email='[email protected]',
description='Parse latex markup into sympy: suitable for programmatic modifcation',
license='GPLv3',
keywords='MIT',
url='',
packages=['latex2sympy'],
classifiers=[
],
install_requires=['antlr-ast', 'sympy'],
cmdclass=dict(
install=AntlrInstallCommand,
develop=AntlrDevelopCommand),
test_suite='nose.collector'
)
그러나 설치 tox
의 방법은 어떻게 든 멀리 내 소스에서 setup.py
을 실행하는 것을 : 내가 사용
접근 방식은과 같이 setup.py에서 소스 코드를 생성 할 수 develop
및 install
명령을 조정할 것입니다 코드와 tox
이 나타내는 마법 블랙 박스는 일이 벌어지는 것을 해결하기 위해 분노를 불러 일으 킵니다.
exec
을 통해 setup.py
을 실행하는이 부두교 마법에 문제가있는 것 같습니다. 웬일인지.
Command "/home/tom/active/latex2sympy/.tox/py35/bin/python3.5 -u -c "import setuptools, tokenize;__file__='/tmp/pip-e698cucb-build/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-lu2idbzz-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/tom/active/latex2sympy/.tox/py35/include/site/python3.5/latex2sympy" failed with error code 1 in /tmp/pip-e698cucb-build/
것들 나는 시도했다 :
- 수동
pdb.set_trace
(명령이 중단 및 I 추가 핍 명령을 Reruning -v -v -v -v- 으로 실행 출력이 보이지 않음)
- ipython 셸 추가 (install_required에 ipython이 설치되어 있지 않음) (210)
- 는
strace -F
실행이setup.py
소스 코드에 예상되는 상대적인 위치에 실제로 것을 보여준다
것들 내가하려고 생각했습니다
- 런타임에 네트워크 백도어 쉘 (만들기 프로젝트의 tox.ini - 파일에서
PEP 263을 처리하기 위해 tox legacy interpreter 지원 ('tokenize.open'은 암시 적으로'detect_encoding')을 정의하고 MS 개행 문자를 * nix 개행 문자로 변경합니다. 나는 이것이 pip (pip - * - build dirs를 mktemping하는 것으로 가정) 사이의 문제라고 말하고 싶다. – cowbert
테스트를 위해 tox를 사용하고 싶다면 tox.ini 파일에'usedevelop = True'를 지정하는 것이 문제가됩니까? 이것은 좀더 해결 방법이지만, 사용 사례로도 충분할 수 있습니다. – bow