Я получаю сообщение об ошибке:
UsageError: Line magic function `%cd..` not found.
при запуске моего кода Python, который я обычно запускаю из Jupyter Notebook с помощью команды оболочки.
Я постоянно использую %cd и %ls в ноутбуках Jupiter и не понимаю, почему я не могу запустить его из оболочки.
Я оба пробовали:
python test.py
и
ipython test.py
это соответствующая часть моего кода:
import csv
import matplotlib.pyplot as plt
from PIL import Image
import numpy as np
import pandas as pd
import sys
import os
import IPython
from scipy.misc import imread
import matplotlib.cbook as cbook
if sys.version_info[0] < 3:
from StringIO import StringIO
else:
from io import StringIO
def main():
script = sys.argv[0]
map_name = sys.argv[1]
callPenalty()
def callPenalty():
%cd standalone-penalty
os.system("octave-cli penalty.m map_bit.bmp 50 1 1 150 150")
%cd..
main()
Кто-нибудь знает, как это решить?
Не используйте их в коде Python; просто используйте вместо него os.chdir.
Подобные волшебства доступны в интерактивных сеансах ipython. Я не рассматривал, как сделать их доступными в скрипте. Вероятно, это потребует импорта некоторого модуля / движка ipython.






Попробуйте добавить пробел после «cd» в «cd ..». Shell обычно использует cd .. для обозначения отдельной команды, а не команды с аргументом ..