2017-09-08 11 views
0

は、私は私のプロジェクトのためにFlashTextsetup.pyファイルを持っています:python-スフィンクスがインストールされていない場合 python-sphinxがsetup.pyファイルからインストールされている場合にのみBuildDocを動作させる方法は?

from setuptools import setup, Command 
from sphinx.setup_command import BuildDoc 

setup(
    . 
    . 
    cmdclass={'test': PyTest, 'build_sphinx': BuildDoc}, 
) 

pip install flashtext

は失敗します。

ImportError: No module named sphinx.setup_command


Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-LI0I_O/flashtext/

これは、問題解決されます:私は必要なもの

sudo apt-get install python-sphinx 

を誰かがpython-sphinxがインストールされていない場合は、その後も、彼らはライブラリをインストールすることができるはずです。私はそれをどのように扱うべきですか?たとえばpy.testため

は、次のように処理されます。

import subprocess 


class PyTest(Command): 
    user_options = [] 

    def initialize_options(self): 
     pass 

    def finalize_options(self): 
     pass 

    def run(self): 
     errno = subprocess.call(['py.test']) 
     raise SystemExit(errno) 

PS:完全なコードは、これは素晴らしいですgithubの上https://github.com/vi3k6i5/flashtext

答えて

1
cmdclass={'test': PyTest} 

try: 
    from sphinx.setup_command import BuildDoc 
    cmdclass['build_sphinx'] = BuildDoc 
except ImportError: 
    print('WARNING: sphinx not available, not building docs') 

setup(
    . 
    . 
    cmdclass=cmdclass 
) 
+0

可能です。これを追加して更新します。ありがとう:) –

+0

ありがとう。問題を解決したテストと検証:) –

関連する問題