使用Python 2.7,我試圖從Anaconda.org下載一個包,將它的版本號增加0.1(即從版本0.0到版本0.1),然後重新上傳到相同的蟒蛇通道。我的代碼保存在了在窗口的CMD或IPython的Conda:下載包並更新它
使用.py文件所以我.py文件到目前爲止,我有:
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
但是我得到這個在終端的響應:
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
沒有運氣。我也嘗試過定義一個'pack'和'load',但是我得到相同的語法錯誤。我知道我應該避免exec和eval函數,但我不知道在這裏做什麼。使用Window的cmd,Spyder或iPython時,我有完全相同的問題。