jankatins / knitpy

knitpy: Elegant, flexible and fast dynamic report generation with python
https://github.com/jankatins/knitpy
Other
368 stars 29 forks source link

[KnitpyApp] ERROR | Could not save a image #29

Closed choies1 closed 3 years ago

choies1 commented 9 years ago

Todo


When I run following code;

knitpy --to="html " ./knitpy_overview1.pymd

(knitpy_overview1.pymd is clone of knitpy_overview.pymd)

The result is as follows:

image

'knitpy_overview.html' show as follows. I cannot see '<matplotlib.figure.Figure at 0x6175b90>' message instead of the plot.

image

If I run the python code of pymd file on IPython (3.2.0). I can see the plot.

image

Please let me know what should I do.

jankatins commented 9 years ago

What's your python version?

Can you run knitpy with the debug flags and post the output (will be long...) somewhere (dropbox, pastebin)?

knitpy --debug --output-debug=True --kernel-debug=True --to="html " -- ./knitpy_overview1.pymd > debug.log

choies1 commented 9 years ago

I use python 3.4.3, IPython 3.2.0, Knitpy 0.1.1.

I made simple pymd file as follows for testing.

//////////////////////////////////////////////////////////////////////////////////////////

IPython / Jupyter display framework

'''{python sinus, echo=False} import matplotlib.pyplot as plt line, = plt.plot([1, 2, 3], [1, 2, 3]) ''' (Actually, I used `x3) //////////////////////////////////////////////////////////////////////////////////////////

The HTML result is as follows: image

The debug output is as follows:

[KnitpyApp] Config changed:
[KnitpyApp] {'KnitpyApp': {'log_level': 10, 'export_format': 'html'}, 'Knitpy':
{'kernel_debug': True}, 'TemporaryOutputDocument': {'output_debug': True}}
[KnitpyApp] IPYTHONDIR set to: C:\Users\choies\.ipython
[KnitpyApp] Using existing profile dir: 'C:\\Users\\choies\\.ipython\\profile_de
fault'
[KnitpyApp] Searching path ['C:\\Users\\choies\\Downloads\\knitpy-master\\knitpy
-master\\examples', 'C:\\Users\\choies\\.ipython\\profile_default', 'C:\\Program
Data\\ipython'] for config files
[KnitpyApp] Attempting to load config file: ipython_config.py
[KnitpyApp] Attempting to load config file: knitpy_config.py
[KnitpyApp] Converting ./knitpy_overview2.pymd...
[KnitpyApp] Changing to working dir: .
[KnitpyApp] Converting document knitpy_overview2.pymd to html_document
[KnitpyApp] Adding 'text': ['### IPython / Jupyter display framework\n']
[KnitpyApp] Flushing caches in output.
[KnitpyApp] Adding 'text': ['\n']
[KnitpyApp] Starting a new kernel: python
[KnitpyApp] Connecting to: tcp://127.0.0.1:8333
[KnitpyApp] connecting shell channel to tcp://127.0.0.1:8330
[KnitpyApp] Connecting to: tcp://127.0.0.1:8330
[KnitpyApp] connecting iopub channel to tcp://127.0.0.1:8331
[KnitpyApp] Connecting to: tcp://127.0.0.1:8331
[KnitpyApp] connecting stdin channel to tcp://127.0.0.1:8332
[KnitpyApp] Connecting to: tcp://127.0.0.1:8332
[KnitpyApp] connecting heartbeat channel to tcp://127.0.0.1:8334
[KnitpyApp] Executed silent code: # Bad things happen if tracebacks have ansi es
cape sequences
%colors NoColor

[KnitpyApp] Silent code shell reply: {'msg_type': 'execute_reply', 'content': {'
user_expressions': {}, 'status': 'ok', 'payload': [], 'execution_count': 0}, 'ms
g_id': '87d44523-f3d2-4622-a272-f6b619e5590f', 'buffers': [], 'header': {'userna
me': 'username', 'msg_type': 'execute_reply', 'msg_id': '87d44523-f3d2-4622-a272
-f6b619e5590f', 'date': datetime.datetime(2015, 7, 11, 0, 42, 27, 199436), 'sess
ion': 'a0fb42cf-7dc1-4878-b1d8-303dd8546665', 'version': '5.0'}, 'parent_header'
: {'username': 'username', 'msg_type': 'execute_request', 'msg_id': '090eae4b-15
0d-4fb3-8b63-da865f7ab45b', 'date': datetime.datetime(2015, 7, 11, 0, 42, 27, 19
4435), 'session': '81d31dbf-4984-4088-aa9f-c591af7c84df', 'version': '5.0'}, 'me
tadata': {'started': '2015-07-11T00:42:27.196435', 'status': 'ok', 'engine': 'e0
10434e-e351-4bd7-8e63-1c31163b3a38', 'dependencies_met': True}}
[KnitpyApp] Silent code iopub msg: {'msg_type': 'status', 'content': {'execution
_state': 'busy'}, 'msg_id': 'e9628fdf-363b-477c-a0e1-0ce7dbb27dfb', 'buffers': [
], 'header': {'username': 'username', 'msg_type': 'status', 'msg_id': 'e9628fdf-
363b-477c-a0e1-0ce7dbb27dfb', 'date': datetime.datetime(2015, 7, 11, 0, 42, 27,
195435), 'session': 'a0fb42cf-7dc1-4878-b1d8-303dd8546665', 'version': '5.0'}, '
parent_header': {'username': 'username', 'msg_type': 'execute_request', 'msg_id'
: '090eae4b-150d-4fb3-8b63-da865f7ab45b', 'date': datetime.datetime(2015, 7, 11,
 0, 42, 27, 194435), 'session': '81d31dbf-4984-4088-aa9f-c591af7c84df', 'version
': '5.0'}, 'metadata': {}}
[KnitpyApp] Silent code iopub msg: {'msg_type': 'status', 'content': {'execution
_state': 'idle'}, 'msg_id': '44a1beb1-c8d1-45a8-b2d3-ea91da63ca33', 'buffers': [
], 'header': {'username': 'username', 'msg_type': 'status', 'msg_id': '44a1beb1-
c8d1-45a8-b2d3-ea91da63ca33', 'date': datetime.datetime(2015, 7, 11, 0, 42, 27,
200436), 'session': 'a0fb42cf-7dc1-4878-b1d8-303dd8546665', 'version': '5.0'}, '
parent_header': {'username': 'username', 'msg_type': 'execute_request', 'msg_id'
: '090eae4b-150d-4fb3-8b63-da865f7ab45b', 'date': datetime.datetime(2015, 7, 11,
 0, 42, 27, 194435), 'session': '81d31dbf-4984-4088-aa9f-c591af7c84df', 'version
': '5.0'}, 'metadata': {}}
[KnitpyApp] Executed kernel startup lines for engine 'python'.
[KnitpyApp] Executed silent code: %matplotlib inline
from IPython.display import set_matplotlib_formats
set_matplotlib_formats('png')

[KnitpyApp] Silent code shell reply: {'msg_type': 'execute_reply', 'content': {'
user_expressions': {}, 'status': 'ok', 'payload': [], 'execution_count': 0}, 'ms
g_id': '559e1fce-63eb-4607-b089-7881f97055d9', 'buffers': [], 'header': {'userna
me': 'username', 'msg_type': 'execute_reply', 'msg_id': '559e1fce-63eb-4607-b089
-7881f97055d9', 'date': datetime.datetime(2015, 7, 11, 0, 42, 27, 799470), 'sess
ion': 'a0fb42cf-7dc1-4878-b1d8-303dd8546665', 'version': '5.0'}, 'parent_header'
: {'username': 'username', 'msg_type': 'execute_request', 'msg_id': 'b0d41990-f8
6c-4acd-bf73-44d7adfad83c', 'date': datetime.datetime(2015, 7, 11, 0, 42, 27, 31
4442), 'session': '81d31dbf-4984-4088-aa9f-c591af7c84df', 'version': '5.0'}, 'me
tadata': {'started': '2015-07-11T00:42:27.317442', 'status': 'ok', 'engine': 'e0
10434e-e351-4bd7-8e63-1c31163b3a38', 'dependencies_met': True}}
[KnitpyApp] Silent code iopub msg: {'msg_type': 'status', 'content': {'execution
_state': 'busy'}, 'msg_id': '34333bd9-e0cc-4b3b-90dd-fccead25c142', 'buffers': [
], 'header': {'username': 'username', 'msg_type': 'status', 'msg_id': '34333bd9-
e0cc-4b3b-90dd-fccead25c142', 'date': datetime.datetime(2015, 7, 11, 0, 42, 27,
317442), 'session': 'a0fb42cf-7dc1-4878-b1d8-303dd8546665', 'version': '5.0'}, '
parent_header': {'username': 'username', 'msg_type': 'execute_request', 'msg_id'
: 'b0d41990-f86c-4acd-bf73-44d7adfad83c', 'date': datetime.datetime(2015, 7, 11,
 0, 42, 27, 314442), 'session': '81d31dbf-4984-4088-aa9f-c591af7c84df', 'version
': '5.0'}, 'metadata': {}}
[KnitpyApp] Silent code iopub msg: {'msg_type': 'status', 'content': {'execution
_state': 'idle'}, 'msg_id': '3dca00ed-8397-4d1c-ac52-0731d15ed1ca', 'buffers': [
], 'header': {'username': 'username', 'msg_type': 'status', 'msg_id': '3dca00ed-
8397-4d1c-ac52-0731d15ed1ca', 'date': datetime.datetime(2015, 7, 11, 0, 42, 27,
800470), 'session': 'a0fb42cf-7dc1-4878-b1d8-303dd8546665', 'version': '5.0'}, '
parent_header': {'username': 'username', 'msg_type': 'execute_request', 'msg_id'
: 'b0d41990-f86c-4acd-bf73-44d7adfad83c', 'date': datetime.datetime(2015, 7, 11,
 0, 42, 27, 314442), 'session': '81d31dbf-4984-4088-aa9f-c591af7c84df', 'version
': '5.0'}, 'metadata': {}}
[KnitpyApp] Enabled image formats '['png', 'svg']' in engine 'python'.
[KnitpyApp] completion_request: 95439f64-a857-48fc-87b4-edbb036430bc
[KnitpyApp] completion_request: d2719507-3b9d-4daa-ad06-1c330f79536b
[KnitpyApp] Executing lines (msg_id=1cd5198b-1b0f-4533-b443-5478c811ede8):
import matplotlib.pyplot as plt

[KnitpyApp] shell msg: {'msg_type': 'execute_reply', 'content': {'user_expressio
ns': {}, 'status': 'ok', 'payload': [], 'execution_count': 1}, 'msg_id': 'a3099f
95-6f0d-4323-8057-d84bac06d52f', 'buffers': [], 'header': {'username': 'username
', 'msg_type': 'execute_reply', 'msg_id': 'a3099f95-6f0d-4323-8057-d84bac06d52f'
, 'date': datetime.datetime(2015, 7, 11, 0, 42, 27, 918477), 'session': 'a0fb42c
f-7dc1-4878-b1d8-303dd8546665', 'version': '5.0'}, 'parent_header': {'username':
 'username', 'msg_type': 'execute_request', 'msg_id': '1cd5198b-1b0f-4533-b443-5
478c811ede8', 'date': datetime.datetime(2015, 7, 11, 0, 42, 27, 914476), 'sessio
n': '81d31dbf-4984-4088-aa9f-c591af7c84df', 'version': '5.0'}, 'metadata': {'sta
rted': '2015-07-11T00:42:27.915476', 'status': 'ok', 'engine': 'e010434e-e351-4b
d7-8e63-1c31163b3a38', 'dependencies_met': True}}
[KnitpyApp] iopub msg (execute_input): {'msg_type': 'execute_input', 'content':
{'execution_count': 1, 'code': 'import matplotlib.pyplot as plt\n'}, 'msg_id': '
6347ad78-1c8f-4b62-937b-f7ff7ee9a8a4', 'buffers': [], 'header': {'username': 'us
ername', 'msg_type': 'execute_input', 'msg_id': '6347ad78-1c8f-4b62-937b-f7ff7ee
9a8a4', 'date': datetime.datetime(2015, 7, 11, 0, 42, 27, 915476), 'session': 'a
0fb42cf-7dc1-4878-b1d8-303dd8546665', 'version': '5.0'}, 'parent_header': {'user
name': 'username', 'msg_type': 'execute_request', 'msg_id': '1cd5198b-1b0f-4533-
b443-5478c811ede8', 'date': datetime.datetime(2015, 7, 11, 0, 42, 27, 914476), '
session': '81d31dbf-4984-4088-aa9f-c591af7c84df', 'version': '5.0'}, 'metadata':
 {}}
[KnitpyApp] completion_request: c74350c8-5fdf-4d3c-b950-6008b5058f69
[KnitpyApp] Executing lines (msg_id=4f54d0da-40ad-404c-829d-444660f3e658):
line, = plt.plot([1, 2, 3], [1, 2, 3])

[KnitpyApp] shell msg: {'msg_type': 'execute_reply', 'content': {'user_expressio
ns': {}, 'status': 'ok', 'payload': [], 'execution_count': 2}, 'msg_id': 'c99567
2c-dbf6-4288-b0d4-85cb502e83c5', 'buffers': [], 'header': {'username': 'username
', 'msg_type': 'execute_reply', 'msg_id': 'c995672c-dbf6-4288-b0d4-85cb502e83c5'
, 'date': datetime.datetime(2015, 7, 11, 0, 42, 28, 94487), 'session': 'a0fb42cf
-7dc1-4878-b1d8-303dd8546665', 'version': '5.0'}, 'parent_header': {'username':
'username', 'msg_type': 'execute_request', 'msg_id': '4f54d0da-40ad-404c-829d-44
4660f3e658', 'date': datetime.datetime(2015, 7, 11, 0, 42, 27, 930477), 'session
': '81d31dbf-4984-4088-aa9f-c591af7c84df', 'version': '5.0'}, 'metadata': {'star
ted': '2015-07-11T00:42:27.931477', 'status': 'ok', 'engine': 'e010434e-e351-4bd
7-8e63-1c31163b3a38', 'dependencies_met': True}}
[KnitpyApp] iopub msg (execute_input): {'msg_type': 'execute_input', 'content':
{'execution_count': 2, 'code': 'line, = plt.plot([1, 2, 3], [1, 2, 3])\n'}, 'msg
_id': '86579a6e-7bb5-4c3c-995d-bee9931cf19e', 'buffers': [], 'header': {'usernam
e': 'username', 'msg_type': 'execute_input', 'msg_id': '86579a6e-7bb5-4c3c-995d-
bee9931cf19e', 'date': datetime.datetime(2015, 7, 11, 0, 42, 27, 931477), 'sessi
on': 'a0fb42cf-7dc1-4878-b1d8-303dd8546665', 'version': '5.0'}, 'parent_header':
 {'username': 'username', 'msg_type': 'execute_request', 'msg_id': '4f54d0da-40a
d-404c-829d-444660f3e658', 'date': datetime.datetime(2015, 7, 11, 0, 42, 27, 930
477), 'session': '81d31dbf-4984-4088-aa9f-c591af7c84df', 'version': '5.0'}, 'met
adata': {}}
[KnitpyApp] iopub msg (display_data): {'msg_type': 'display_data', 'content': {'
metadata': {}, 'data': {'image/png': 'iVBORw0KGgoAAAANSUhEUgAAAXYAAAEACAYAAACnJV
25AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAADvFJREFUeJzt3U+IHOedxvHn
UayQWQwrFoMcWxI+2IZdSLA2wVbs7Lr3\nEFhrQSdDDBnM+rLBxLEJ+GQEErrkkIvxHhwdbEmbhfigCU
ZJZJYQ1CE5RId4Rv4zSrAhB9lgrYNi\nEXsIxOS3hylpS63ururuqq6qt74faFw9/ar7pSi9+upVd9sR
IQBAOnY0PQEAQLVY2AEgMSzsAJAY\nFnYASAwLOwAkhoUdABIzdWG3/Tnb521v2N60/d0J416w/Y7tC7
b31zNVAEAZt0x7MCL+bPtfImLL\n9i2SfmX7qxHxq2tjbB+UdHdE3GP7AUkvSjpQ77QBAJMUbsVExFZ2
+FlJn5F0ZWTIIUmnsrHnJe2y\nvbvKSQIAyitc2G3vsL0h6bKkcxGxOTLkTkmXcvffk7SnuikCAGZRpt
j/GhH3aXux/mfbgzHDPPrL\nKpgbAGAOU/fY8yLiqu2fSvqypGHuofcl7c3d35P97Aa2WewBYA4RMRrP
UxW9K+Y227uy4xVJX5O0\nPjLsjKTHszEHJH0UEZcnTI5bBbcjR440PoeUbpxPzmdbbqdPh26/PfTss6
Gtre2fzaOo2D8v6ZTt\nHdr+Q+AHEfFz29/MFurjEXHW9kHb70r6RNITc80EAHrqww+lp56SLlyQfvQj
6StfWez5it7u+Kak\nfxzz8+Mj959abBoA0E9ra9uL+uqqdPKktLKy+HOW3mNHewwGg6ankBTOZ7U4n+
VUXel5nncPZ+YX\nsmNZrwUAbZav9GPHple6bcWM/3hKsQPAktRZ6Xl8CRgALMHamvTFL0r79knr6/Ut
6hLFDgC1Wlal\n51HsAFCTZVZ6HsUOABVrotLzKHYAqFBTlZ5HsQNABZqu9DyKHQAW1IZKz6PYAWBOba
r0PIodAObQ\ntkrPo9gBYAZtrfQ8ih0ASmpzpedR7ABQoAuVnkexA8AUXan0PIodAMboWqXnUewAMKKL
lZ5HsQNA\npsuVnkexA4C6X+l5FDuAXkul0vModgC9lVKl51HsAHonxUrPo9gB9EqqlZ5HsQPohdQrPY
9iB5C8\nPlR6HsUOIFl9qvQ8ih1AkvpW6XkUO4Ck9LXS8yh2AMnoc6XnUewAOo9KvxHFDqDTqPSbUewA
OolK\nn4xiB9A5VPp0FDuAzqDSy6HYAXQClV4exQ6g1aj02VHsAFqLSp8PxQ6gdaj0xVDsAFqFSl8cxQ
6g\nFaj06lDsABpHpVeLYgfQGCq9HhQ7gEZQ6fWh2AEsFZVeP4odwNJQ6ctBsQOoHZW+XFOL3fZe2+ds
\nv237LdtPjxkzsH3V9np2O1zfdAF0DZW+fEXF/hdJ34mIDdu3SvqN7Z9FxMWRcb+IiEP1TBFAF1Hp\n
zZla7BHxQURsZMcfS7oo6Y4xQ13D3AB0FJXerNJ77LbvkrRf0vmRh0LSg7YvSHpf0rMRsVnVBAF0\nB5
XeDqUW9mwb5rSkZ7Jyz3td0t6I2LL9iKRXJd077nmOHj16/XgwGGgwGMwxZQBttLa2vaivrkon\nT0or
K03PqJuGw6GGw+FCz+GImD7A3inpJ5Jei4jnC5/Q/r2kL0XElZGfR9FrAeiefKWfOEGlV822\nImKm7e
6id8VY0kuSNict6rZ3Z+Nk+35t/2FxZdxYAGlhL72dirZiHpK0KukN2+vZz56TtE+SIuK4\npEclPWn7
U0lbkh6raa4AWoK99HYr3Iqp7IXYigGSkN9LP3aMvfS6zbMVwydPAZRCpXcH3xUDoBB7\n6d1CsQOYiE
rvJoodwFhUendR7ABuQKV3H8UO4DoqPQ0UOwAqPTEUO9BzVHp6KHagp6j0dFHsQA9R\n6Wmj2IEeodL7
gWIHeoJK7w+KHUgcld4/FDuQMCq9nyh2IEFUer9R7EBiqHRQ7EAiqHRcQ7EDCaDS\nkUexAx1GpWMcih
3oKCodk1DsQMdQ6ShCsQMdQqWjDIod6AAqHbOg2IGWo9IxK4odaCkqHfOi2IEW\notKxCIodaBEqHVWg
2IGWoNJRFYodaBiVjqpR7ECDqHTUgWIHGkClo04UO7BkVDrqRrEDS0KlY1ko\ndmAJqHQsE8UO1IhKRx
ModqAmVDqaQrEDFaPS0TSKHagQlY42oNiBClDpaBOKHVgQlY62odiBOVHp\naCuKHZgDlY42o9iBGVDp
6AKKHSiJSkdXUOxAASodXUOxA1NQ6egiih0Yg0pHl00tdtt7bZ+z/bbt\nt2w/PWHcC7bfsX3B9v56pg
osB5WOrisq9r9I+k5EbNi+VdJvbP8sIi5eG2D7oKS7I+Ie2w9IelHS\ngfqmDNSDSkcqphZ7RHwQERvZ
8ceSLkq6Y2TYIUmnsjHnJe2yvbuGuQK1odKRktJ77LbvkrRf0vmR\nh+6UdCl3/z1JeyRdXnBuQO3+8A
fpW9+i0pGWUgt7tg1zWtIzWbnfNGTkfox7nqNHj14/HgwGGgwG\npSYJ1GFtbXvr5RvfkE6elFZWmp4R
IA2HQw2Hw4WewxFj1+D/H2DvlPQTSa9FxPNjHv++pGFEvJLd\n/62khyPi8si4KHotYBnye+knTlDpaD
fbiojReJ6q6F0xlvSSpM1xi3rmjKTHs/EHJH00uqgDbcFe\nOvqgaCvmIUmrkt6wvZ797DlJ+yQpIo5H
xFnbB22/K+kTSU/UNltgTrzjBX1SuBVT2QuxFYOGXNtL\nX12Vjh1jLx3dMs9WDJ88RbKodPQV3xWDJL
GXjj6j2JEUKh2g2JEQKh3YRrGj86h04EYUOzqNSgdu\nRrGjk6h0YDKKHZ1DpQPTUezoDCodKIdiRydQ
6UB5FDtajUoHZkexo7WodGA+FDtah0oHFkOxo1Wo\ndGBxFDtagUoHqkOxo3FUOlAtih2NodKBelDsaA
SVDtSHYsdSUelA/Sh2LA2VDiwHxY7aUenAclHs\nqBWVDiwfxY5aUOlAcyh2VI5KB5pFsaMyVDrQDhQ7
KkGlA+1BsWMhVDrQPhQ75kalA+1EsWNmVDrQ\nbhQ7ZkKlA+1HsaMUKh3oDoodhU6fptKBLqHYMRGVDn
QTxY6xqHSguyh23IBKB7qPYsd1VDqQBood\nVDqQGIq956h0ID0Ue09R6UC6KPYeotKBtFHsPUKlA/1A
sfcElQ70B8WeOCod6B+KPWFUOtBPFHuC\nqHSg3yj2xFDpACj2RFDpAK4pLHbbL9u+bPvNCY8PbF+1vZ
7dDlc/TUxDpQPIK1PsJyT9p6T/mjLm\nFxFxqJopoSwqHcA4hcUeEb+U9MeCYa5mOiiLSgcwSRV77CHp
QdsXJL0v6dmI2KzgeTEGlQ6gSBUL\n++uS9kbElu1HJL0q6d5xA48ePXr9eDAYaDAYVPDy/XH6tPTtb0
urq9LJk9LKStMzAlC14XCo4XC4\n0HM4IooH2XdJ+nFEfKHE2N9L+lJEXBn5eZR5LdwsX+knTlDpQJ/Y
VkTMtN298PvYbe+27ez4fm3/\nYXGl4JehJPbSAcyqcCvG9g8lPSzpNtuXJB2RtFOSIuK4pEclPWn7U0
lbkh6rb7r9wV46gHmV2oqp\n5IXYiiktv5d+7Bh76UCfzbMVwydPW4RKB1AFviumJdhLB1AVir1hVDqA
qlHsDaLSAdSBYm8AlQ6g\nThT7klHpAOpGsS8JlQ5gWSj2JaDSASwTxV4jKh1AEyj2mlDpAJpCsVeMSg
fQNIq9QlQ6gDag2CtA\npQNoE4p9QVQ6gLah2OdEpQNoK4p9DlQ6gDaj2GdApQPoAoq9JCodQFdQ7AWo
dABdQ7FPQaUD6CKK\nfQwqHUCXUewjqHQAXUexZ6h0AKmg2EWlA0hLr4udSgeQot4WO5UOIFW9K3YqHU
DqelXsVDqAPuhF\nsVPpAPok+WKn0gH0TbLFTqUD6Kski51KB9BnSRU7lQ4ACRU7lQ4A2zpf7FQ6ANyo
08VOpQPAzTpZ\n7FQ6AEzWuWKn0gFgus4UO5UOAOV0otipdAAor9XFTqUDwOxaW+xUOgDMp3XFTqUDwG
JaVexUOgAs\nrhXFTqUDQHUaL3YqHQCqVVjstl+W9G+S/jcivjBhzAuSHpG0JenfI2K96HmpdACoR5li
PyHpXyc9\naPugpLsj4h5J/yHpxaInpNIXMxwOm55CUjif1eJ8Nq9wYY+IX0r645QhhySdysael7TL9u
5xAz/8\nUPr616XDh7cr/Xvfk1ZW5pl2v/Ebp1qcz2pxPptXxR77nZIu5e6/J2nPuIFUOgDUr6p3xXjk
fowb\nxF46ANTPEWPX4BsH2XdJ+vG4fzy1/X1Jw4h4Jbv/W0kPR8TlkXHFLwQAuElEjMbzVFUU+xlJT0
l6\nxfYBSR+NLurzTAwAMJ8yb3f8oaSHJd1m+5KkI5J2SlJEHI+Is7YP2n5X0ieSnqhzwgCA6UptxQAA
\nuqPST57aftn2ZdtvThnzgu13bF+wvb/K109J0bm0PbB91fZ6dju87Dl2ie29ts/Zftv2W7afnjCO\n
67OEMueTa7Qc25+zfd72hu1N29+dMK78tRkRld0k/ZOk/ZLenPD4QUlns+MHJP26ytdP6VbiXA4k\nnW
l6nl25Sbpd0n3Z8a2Sfifp70fGcH1Wez65Rsufz7/J/nuLpF9L+urI4zNdm5UWe1T4Yaa+K3Eu\npZvf
ZooJIuKDiNjIjj+WdFHSHSPDuD5LKnk+Ja7RUiJiKzv8rKTPSLoyMmSma3PZXwJW+sNMKBSS\nHsz+Wn
bW9j80PaGuyN6+u1/S+ZGHuD7nMOV8co2WZHuH7Q1JlyWdi4jNkSEzXZtNfG1vqQ8zodDr\nkvZGxJbt
RyS9KunehufUerZvlXRa0jNZad40ZOQ+1+cUBeeTa7SkiPirpPts/62k/7E9iIjhyLDS\n1+ayi/19SX
tz9/dkP8OMIuJP1/76FhGvSdpp++8anlar2d4paU3Sf0fEq2OGcH3OoOh8co3OLiKu\nSvqppC+PPDTT
tbnshf2MpMcladqHmVDM9m7bzo7v1/ZbV0f35ZDJztVLkjYj4vkJw7g+SypzPrlG\ny7F9m+1d2fGKpK
9JGv3q85muzUq3YvgwU3WKzqWkRyU9aftTbX8P/mNNzbUjHpK0KukN29d+0zwn\naZ/E9TmHwvMprtGy
Pi/plO0d2o7tH0TEz21/U5rv2uQDSgCQmMb/13gAgGqxsANAYljYASAxLOwA\nkBgWdgBIDAs7ACSGhR
0AEsPCDgCJ+T/wqUs1NuhuIQAAAABJRU5ErkJggg==\n', 'text/plain': '<matplotlib.figure
.Figure at 0x637eef0>'}}, 'msg_id': '1fd43a3c-6809-45e8-8397-d0a97c5cd632', 'buf
fers': [], 'header': {'username': 'username', 'msg_type': 'display_data', 'msg_i
d': '1fd43a3c-6809-45e8-8397-d0a97c5cd632', 'date': datetime.datetime(2015, 7, 1
1, 0, 42, 28, 92487), 'session': 'a0fb42cf-7dc1-4878-b1d8-303dd8546665', 'versio
n': '5.0'}, 'parent_header': {'username': 'username', 'msg_type': 'execute_reque
st', 'msg_id': '4f54d0da-40ad-404c-829d-444660f3e658', 'date': datetime.datetime
(2015, 7, 11, 0, 42, 27, 930477), 'session': '81d31dbf-4984-4088-aa9f-c591af7c84
df', 'version': '5.0'}, 'metadata': {}}
[KnitpyApp] Trying to include image...
[KnitpyApp] ERROR | Could not save a image
Traceback (most recent call last):
  File "C:\Anaconda3\lib\base64.py", line 519, in _input_type_check
    m = memoryview(s)
TypeError: memoryview: str object does not have the buffer interface

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Anaconda3\lib\site-packages\knitpy\documents.py", line 259, in add_im
age
    mimedata = base64.decodestring(mimedata)
  File "C:\Anaconda3\lib\base64.py", line 561, in decodestring
    return decodebytes(s)
  File "C:\Anaconda3\lib\base64.py", line 553, in decodebytes
    _input_type_check(s)
  File "C:\Anaconda3\lib\base64.py", line 522, in _input_type_check
    raise TypeError(msg) from err
TypeError: expected bytes-like object, not str
[KnitpyApp] Couldn't include image: expected bytes-like object, not str
[KnitpyApp] No image found: image/jpeg
[KnitpyApp] No image found: image/svg+xml
[KnitpyApp] Adding 'output': ['<matplotlib.figure.Figure at 0x637eef0>']
[KnitpyApp] Flushing caches in output.
[KnitpyApp] Adding 'output': ['\n']
[KnitpyApp] completion_request: 8c577383-c27f-4536-9dc3-a05207ad0119
[KnitpyApp] Adding 'text': ['']
[KnitpyApp] Flushing caches in output.
[KnitpyApp] Kernel shutdown: 9aeab561-4d79-4c35-a41a-b7b3ea0db81d
[KnitpyApp] Flushing caches in output.
[KnitpyApp] Written final output: knitpy_overview2.html
jankatins commented 9 years ago

huih, I really should add unittests for these classes... The problem is that it seems that the kernelClient returns the message data as a string and not as bytes and the base64 function expects bytes, despite the name... py2 has no problem with it, but py3....

Can you try to replace the following line in C:\Anaconda3\lib\site-packages\knitpy\documents.py", line 259:

-            mimedata = base64.decodestring(mimedata)
+            mimedata = base64.decodebytes(mimedata.encode())

and see if that works?

I won't be able to work on this problem until next weekend :-(

choies1 commented 9 years ago

Thanks a lot.

It works well after I changed the code in "C:\Anaconda3\lib\site-packages\knitpy\documents.py", line 259:

-            mimedata = base64.decodestring(mimedata)
+            mimedata = base64.decodestring(mimedata.encode())
               or 
+            mimedata = base64.decodebytes(mimedata.encode())

'base64.decodestring(mimedata.encode())' or 'base64.decodebytes(mimedata.encode())' works well for Python3, when I convert pymd file to HTML or docx file

image

However, it doesn't work for PDF file converting.

image

jankatins commented 9 years ago

Not sure what's happening here: AFAIK pdf / latex can handle PNG just fine. On the other hand, knitpy should also get a pdf version of the plot (at least in latest git -> see knitpy/engines.py) from the kernel but in your case only png is asked for:

KnitpyApp] Executed kernel startup lines for engine 'python'.
[KnitpyApp] Executed silent code: %matplotlib inline
from IPython.display import set_matplotlib_formats
set_matplotlib_formats('png')

Can you insert somewhere in your code (as a code chunk!) before the plot

from IPython.display import set_matplotlib_formats
set_matplotlib_formats(['png', 'pdf', 'svg'])

This should get you the plot in the pdf file...

jankatins commented 9 years ago

@choies1 can you give me the comandline and the debuglog for the pdf generation?

choies1 commented 9 years ago

Thank you for your feedback.

In my test, I added '%matplotlib inline' in chuck code as follows.

# As this all produces no output, it should go into the same input section...
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
y = np.linspace(2, 10)
line, = plt.plot(y, np.sin(y))

I think it (%matplotlib inline) made some troubles.

This is no error message as follows:

command line ==> knitpy --to='pdf'  -- ./knitpy_overview1.pymd

[KnitpyApp] Converting ./knitpy_overview1.pymd...
[KnitpyApp] Changing to working dir: .
[KnitpyApp] Converting document knitpy_overview1.pymd to pdf_document
[KnitpyApp] Starting a new kernel: python
[KnitpyApp] Executed kernel startup lines for engine 'python'.
[KnitpyApp] Enabled image formats '['pdf']' in engine 'python'.
[KnitpyApp] Kernel shutdown: b70854be-e1da-4e67-8293-f2dac29cfaef
[KnitpyApp] Written final output: knitpy_overview1.pdf

However, I can't see the plot in pdf file. (docx and html files are OK)

After I remove '%matplotlib inline' in chuck code as follows:

# As this all produces no output, it should go into the same input section...
import numpy as np
import matplotlib.pyplot as plt
y = np.linspace(2, 10)
line, = plt.plot(y, np.sin(y))

The pdf file result is as follows:

image

jankatins commented 9 years ago

Yep, it seems that %matplotlib inline resets the plotting formas back to png :-( Not sure what knitpy can do about that, maybe look for such lines and warn... I added https://github.com/ipython/ipykernel/issues/29, lets see what the jupyter gods say...

jankatins commented 9 years ago

Ok, the problem with calling %matplotlib inline twice is fixed on the ipython side... I don'T think I want to introduce some special code too look for this...