के साथ स्थापित करें, मैं स्थापना समय पर एक पायथन फ़ाइल जेनरेट करना चाहता हूं।पायथन पैकेजिंग: स्थापना समय पर एक पायथन फ़ाइल जेनरेट करें, इस काम को टोक्स
मैं यह काम python setup.py develop
, python setup.py install
और pip install
दोनों के साथ चाहता हूं। अब तक सब ठीक है।
हालांकि मैं यह भी टोक्स के साथ काम करना चाहता हूं। यह वह जगह है जहां मुझे समस्याएं आ रही हैं।
# 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
मेरे स्रोत से भाग रहा है:
दृष्टिकोण मैं का उपयोग कर develop
और install
आदेशों बदलाव करने तो जैसे setup.py में स्रोत कोड उत्पन्न करने के लिए है कोड और जादू ब्लैकबॉक्स tox
दर्शाता है कि यह क्या हो रहा है यह जानने के लिए क्रूरतापूर्ण बनाता है।
समस्या इस voodoo जादू के लिए नीचे प्रतीत होती है जो setup.py
में खींचती है इसे किसी कारण से exec
.... के माध्यम से चलाती है।
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/
बातें मैं कोशिश की है:
- साथ -v -v -v -v
- रनिंग पिप आदेश मैन्युअल
- एक
pdb.set_trace
(आदेश रुक जाता है और मैं जोड़ना Reruning आउटपुट नहीं देखें) - आईपीथॉन खोल जोड़ना (ipython इंस्टॉल_required में भी स्थापित नहीं है)
- एक
strace -F
चल रहा है इस से पता चलता है किsetup.py
स्रोत कोड के लिए उम्मीद स्थान सापेक्ष में वास्तव में है
बातें मैं कोशिश कर रहा पर विचार किया है:
- रन टाइम पर एक नेटवर्क पिछले दरवाजे खोल (बनाना बहुत आलसी)
पीईपी 263 को परिभाषित करने के लिए टोक्स विरासत दुभाषिया समर्थन की तरह दिखता है ('टोकनइज.ओपेन' निहित रूप से 'detect_encoding' कहता है) और एमएस न्यूलाइन को * निक्स न्यूलाइन में बदलता है। मैं कहूंगा कि यह पीआईपी के बीच एक मुद्दा है (मुझे लगता है कि यह 'पीआईपी - * - बिल्ड' डीआईआरएस का निर्माण कर रहा है) टोक्स को सौंप रहा है? – cowbert
मुझे लगता है कि आप परीक्षण के लिए टोक्स का उपयोग करना चाहते हैं, तो क्या tox.ini फ़ाइल में 'usedevelop = True' निर्दिष्ट करने में समस्या होगी? यह एक कामकाज का अधिक है, लेकिन यह आपके उपयोग के मामले के लिए पर्याप्त हो सकता है। – bow