Jupyter:为什么我不能使用包含 shell 命令的方法导入 `.py` 文件?
Jupyter: why can't I import a `.py` file with a method containing a shell command?
这是我笔记本上的作品 (python 3):
from google.colab import auth
def google_cloud_auth(project_id):
auth.authenticate_user()
!gcloud config set project {project_id}
return project_id
project_id = "my-project"
google_cloud_auth(project_id)
# Updated property [core/project].
这不是:
import colab_utils
project_id = "my-project"
colab_utils.google_cloud_auth(project_id)
# ERROR:
File "/content/colab_utils.py", line 14
!gcloud config set project {project_id}
^
SyntaxError: invalid syntax
colab_utils.py
中的方法相同
我做错了什么?
这些命令不应该在原版中工作 Python。
感叹号(以及许多其他单元格魔术功能)是 Jupyter/IPython shell 的特定功能。它们在命令执行之前由 shell 处理,从未传递给实际的 Python.
这是我笔记本上的作品 (python 3):
from google.colab import auth
def google_cloud_auth(project_id):
auth.authenticate_user()
!gcloud config set project {project_id}
return project_id
project_id = "my-project"
google_cloud_auth(project_id)
# Updated property [core/project].
这不是:
import colab_utils
project_id = "my-project"
colab_utils.google_cloud_auth(project_id)
# ERROR:
File "/content/colab_utils.py", line 14
!gcloud config set project {project_id}
^
SyntaxError: invalid syntax
colab_utils.py
我做错了什么?
这些命令不应该在原版中工作 Python。
感叹号(以及许多其他单元格魔术功能)是 Jupyter/IPython shell 的特定功能。它们在命令执行之前由 shell 处理,从未传递给实际的 Python.