2014-10-18 12 views
5

Udało mi się to osiągnąć przy użyciu metody udokumentowanej pod numerem Run IPython Notebook in Iframe from another Domain. Wymagało to jednak edycji pliku konfiguracyjnego użytkownika. Naprawdę miałem nadzieję, że będę mógł to ustawić za pomocą wiersza poleceń (z powodów).Jak osadzić Notatnik Ipython w elemencie iframe (nowy)

http://ipython.org/ipython-doc/1/config/overview.html oznacza, że ​​możliwa jest konfiguracja za pomocą wiersza poleceń. Jednak wszystkie przykłady dotyczą prostego przypisania wartości true/false. Aby ustawić serwer tak, aby zezwalał na osadzanie, konieczne jest ustawienie wartości w słowniku. Nie mogę się dowiedzieć, jak przekazać w słowniku słownik za pomocą wiersza polecenia.

Inną możliwą do przyjęcia opcją byłby plik nadpisujący konfigurację.

Niektórzy ludzie będą się zastanawiać - po co te wszystkie kłopoty!?!

Po pierwsze, nie jest to do produkcji. Próbuję wspierać innych twórców, pisząc aplikację internetową, która integruje ze sobą notesy Ipython za pomocą elementów iframe. Pomimo tego, że znajduje się on na tej samej maszynie, okazuje się, że inny numer portu wystarczy, aby uniemożliwić proste osadzanie elementów iframe bez ustawiania bitu niepewności ramki x.

Możliwość wykonania tego za pomocą wiersza poleceń pozwala ustawić zachowanie w skrypcie uruchamiania, zamiast konieczności pakowania specjalnego pliku konfiguracyjnego wewnątrz mojej aplikacji, a także napisania instalatora.

Naprawdę mam nadzieję, że postawiłem pytanie wystarczająco jasno! Dzięki za wszelkie sugestie i pomoc!

+0

Nie możesz po prostu utworzyć profilu i dołączyć go do swojej aplikacji? Nie widzę potrzeby instalatora, wystarczy podać swój profil w wierszu poleceń za pomocą '--profile your_profile'. – cm2

+0

cm2, zrobiłem to, co zasugerowałeś w końcu, ale to wymaga instalatora, aby stworzyć profil w pierwszej kolejności. Mam skrypt tkaniny, który uruchamia tworzenie profilu, a następnie kopiuje plik konfiguracyjny do katalogu profilu. Wtedy główna aplikacja może określić profil tak, jak sugerujesz. Takie podejście sprawia, że ​​jest nieco bardziej złożony w porównaniu z prostym przekazywanym parametrem, ale wykonuje to zadanie. Dzieki za sugestie. –

Odpowiedz

0

Przeglądając źródła IPythona dla ładowarek, wygląda na to, że wykona on dowolny kod Pythona, który umieścisz po prawej stronie. Nie testowałem tego, ale na podstawie podanego linku prawdopodobnie możesz przekazać coś w rodzaju:

--NotebookApp.webapp_settings=dict('headers'=dict('X-Frame-Options'='ALLOW-FROM https://example.com/')) 
+1

Próbowałem wielu różnych rzeczy, łącznie z tym, i nie działały. Wygląda na to, że ładowanie wartości nie wykonuje pełnej ewaluacji wyrażenia. Świetna, świetna sugestia, ale niestety kości. –

Powiązane problemy