2017-06-05 7 views
0

Python 2.7を使用して、Anaconda.orgからパッケージをダウンロードしようとしています。バージョン番号を0.1(ver 0.1からver 0.1)に増やしてから、同じアナコンダチャンネル。私は、端末でのレスポンスとしてこれを取得しかしConda:パッケージをダウンロードしてアップデートする

import sys, subprocess, conda 

# Search for the package 
search = subprocess.check_output(['conda', 'search', 'gladio']) 

# Take version number from package 
v = [int(s) for s in search.split() if s.isdigit()] 

# Update with new version number 
v = v[0] + 1 
print 'New version number is 0.%s' % v 

# Set new commands as strings 
pack = '''!conda package -p C:\Users\Ian\Anaconda\gladio --pkg-name gladio - 
     -pkg-ver 0.%s''' % v 
load = '!anaconda upload gladio0.%s-0.tar.bz2' % v 

# Execute strings 
exec pack 
exec load 

::私のコードは私が持っている私の.pyファイルにこれまでのところ、WindowsのCMDまたはiPython

に使用されているの.pyファイルに保存され

New version number is 0.1 
    File "<string>", line 1 
    !conda package -p C:\Users\Ian\Anaconda\gladio --pkg-name gladi... 
    ^
SyntaxError: invalid syntax 

私は生のテキストとしてiPythonにコピーして貼り付ける場合は、それが動作します。

感嘆符を削除するとき私が手:

conda package -p C:\Users\Ian\Anaconda\gladio --pkg-name gladi... 
      ^
SyntaxError: invalid syntax 

また、私は運で

eval pack 
eval load 

または

eval $pack 
eval $load 

に変更しようとしています。私はまた、 'パック'と '負荷'を定義しようとしたが、私は同じ構文エラーを取得します。私はexecとevalの機能を避けるべきだと知っていますが、私はここで何をすべきか分かりません。私は、Windowのcmd、Spyder、iPythonを使用する場合とまったく同じ問題があります。

答えて

0

感嘆符! code hereの構文がシェルコマンドを実行する手段としてIPython(およびJupyter Notebooks)で有効であるためです。ただし、CMDにpython script_name.pyと入力したときに実行される一般的な(通常の)Pythonインタプリタの構文は無効です。十分に文書化されていないが、conda.cli.python_apiconda.exportsがある。前者のコードは次のとおりです。https://github.com/conda/conda/blob/master/conda/cli/python_api.py

関連する問題