我安装了Anaconda(使用Python 2.7),并在一个名为的环境中安装了Tensorflow tensorflow.我可以在该环境中成功导入Tensorflow.
问题是Jupyter Notebook无法识别我刚刚创建的新环境.无论我从GUI导航或命令行启动Jupyter笔记本电脑内的tensorflowENV中,只有一个名为菜单内核Python [Root],并Tensorflow无法导入.当然,我多次点击该选项,保存文件,重新打开,但这些没有帮助.
奇怪的是,当我打开CondaJupyter首页上的标签时,我可以看到这两个环境.但是当我打开Files标签,并尝试new使用笔记本时,我仍然只有一个内核.
我看了这个问题:
用Jupyter Notebook链接Conda环境
但是~/Library/Jupyter/kernels我的电脑上没有这样的目录!这个Jupyter目录只有一个名为的子目录runtime.
我真的很困惑.Conda环境是否应该自动成为内核?(我跟着https://ipython.readthedocs.io/en/stable/install/kernel_install.html手动设置了内核,但被告知ipykernel没有找到.)
我的~/anaconda目录占用了太多的磁盘空间(10GB),虽然我只有五个环境并且已经运行conda clean.我发现当我尝试创建一个新的conda环境时,Anaconda会显示一个很长的要下载的包列表,其中包括一个完整的科学Python堆栈(Python解释器,numpy,scipy等).似乎Anaconda正在为每个环境独立安装所有东西.这是真的?
以下列表包含一些可能解决空间问题的纯粹推测方法:
pip用来安装包,因为conda install经常失败.是否conda install做了一些聪明的工作重用已经安装在其他地方包?(调试信息)我的四个环境目录的大小~/anaconda/envs介于1.2GB和2.6GB之间.这是正常的吗?
我的类的一个对象有一个列表作为其属性.那是,
class T(object):
def __init__(self, x, y):
self.arr = [x, y]
Run Code Online (Sandbox Code Playgroud)
复制此对象时,我想要一个单独的列表arr,但是列表内容的浅表副本(例如x和y).因此,我决定实现自己的复制方法,该方法将重新创建列表,但不会重新创建列表中的项目.但我应该打电话给这个__copy__()还是__deepcopy__()?根据Python语义,哪一个是我所做的正确名称?
我的猜测是__copy__().如果我打电话deepcopy(),我希望克隆完全与原始分离.但是,文档说:
甲深层副本构造新化合物的对象,然后,递归地,插入拷贝到它在原始找到的对象的.
说"将副本插入其中"而不是"将深拷贝插入其中" 令人困惑,尤其是强调.