File “/home/map/huyong06/xdev/lib/python3.6/site-packages/notebook/utils.py”, line 36, in exists
os.lstat(path)
UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 28-30: ordinal not in range(128)
[W 14:08:19.063 NotebookApp] Unhandled error
从日志信息来看,主要有两个问题:
1. 文件不是UTF-8编码的警告。
2. 在创建新笔记本时遇到`UnicodeEncodeError`。
可以尝试以下步骤来解决这些问题:
### 1. 检查文件编码问题
确保Jupyter Notebook使用UTF-8编码。你可以通过以下步骤进行检查和修改:
#### 1.1 检查Python文件编码
确保你的Python文件是UTF-8编码的。你可以使用以下命令检查文件编码:
```bash
file -i /path/to/your/file
```
如果文件不是UTF-8编码,可以使用以下命令将其转换为UTF-8编码:
```bash
iconv -f 原编码 -t utf-8 /path/to/your/file -o /path/to/your/new_file
```
#### 1.2 设置环境变量
确保你的环境变量设置正确。你可以在启动Jupyter Notebook之前设置以下环境变量:
```bash
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
```
你可以将这些命令添加到你的`.bashrc`或`.bash_profile`文件中,以便每次启动终端时都自动设置这些环境变量。
### 2. 解决`UnicodeEncodeError`
这个错误通常是由于路径或文件名包含非ASCII字符引起的。你可以尝试以下步骤来解决这个问题:
#### 2.1 使用纯ASCII字符的路径
确保你的工作目录和文件名只包含ASCII字符。避免使用中文或其他非ASCII字符。
#### 2.2 修改Jupyter配置文件
如果你必须使用非ASCII字符,可以尝试修改Jupyter Notebook的配置文件(`jupyter_notebook_config.py`)。如果没有这个文件,你可以通过以下命令生成:
```bash
jupyter notebook --generate-config
```
然后编辑配置文件,添加或修改以下内容:
```python
c.NotebookApp.iopub_data_rate_limit = 10000000 # 设置较大的数据传输速率限制
c.NotebookApp.allow_unicode = True # 允许使用Unicode字符
```
### 3. 更新Jupyter Notebook和依赖包
确保你的Jupyter Notebook和相关依赖包是最新的。你可以使用以下命令更新:
```bash
pip install --upgrade notebook jupyterlab tornado
```
### 4. 检查nbextensions
日志中提到的`nbextensions_configurator`未找到,可以尝试重新安装`jupyter_contrib_nbextensions`:
```bash
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
```
完成以上步骤后,重新启动Jupyter Notebook,检查是否解决了问题。