一日多技,技能-Linux-Python-Life 005

简介: 一日多技,技能-Linux-Python-Life 005

简说Python,号主老表,Python终身学习者,数据分析爱好者,从18年开始分享Python知识,原创文章227篇,写过Python、SQL、Excel入门文章,也写过Web开发、数据分析文章,老表还总结整理了一份2022Python学习资料和电子书资源,关注后私信回复:2022 即可领取。

Linux 相关

1、Docker和宿主机之间共享文件?

docker run -it --rm -v /home/my_data:/share 镜像ID /bin/bash

指令含义:把宿主机的 /home/my_data 目录挂载到新建容器的 /share 目录。 执行完上面命令进入 Docker 容器后,进入 /share 文件夹下,ls 后就会看到宿主机 /home/my_data 中的文件。

2、vim 删除单行、全部?撤回?

1)删除单行:dd

2)删除全部:

  • gg 光标移动到行首
  • dG 删除光标后所有内容

3)撤回:u

3、Ubuntu 查看安装的软件包版本和位置?

  • 查看软件包名称
(myconda) root@ZA8rRd:/# dpkg -l | grep cudnn
hi  libcudnn8                     8.2.0.53-1+cuda11.3 amd64               cuDNN runtime libraries
ii  libcudnn8-dev                 8.2.0.53-1+cuda11.3 amd64               cuDNN development libraries and headers
  • 根据名称查找位置
(myconda) root@ZA8rRd:/# dpkg -L libcudnn8 
/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libcudnn.so.8.2.0
...

4、如何使用cuda编译 cpp 代码?fatal error: cuda.h: No such file or directory!!!

首先你需要确保你机器里面已经安装了 cuda 环境。

测试程序如下,写入到t-c.cpp文件中:

#include <iostream>
#include <cuda.h>
int main()
{
    printf("Hello World");
    return 0;
}

编译的时候需要指定以下参数:

  • -I /usr/local/cuda/include  指定编译的时候,头文件搜索路径
  • -o tc 编译成功的可执行文件名称
  • -L /usr/local/cuda/lib64 指定编译的时候,搜索库的路径
  • -l cuda 指定编译的时候使用的库
g++ -I /usr/local/cuda/include t-c.cpp -o tc -L /usr/local/cuda/lib64 -l cuda
(myconda) root@ZA8rRd:/home# g++ -I /usr/local/cuda/include t-c.cpp -o tc -L /usr/local/cuda/lib64 -l cuda
(myconda) root@ZA8rRd:/home# ./tc
Hello World

5、linux 删除安装的软件包

apt-get remove --purge 软件名称  -y
apt-get autoremove --purge 软件名称  -y

Python 相关

'NoneType'object is not subscriptable 这种错误是因为你调用的索引不存在导致,比如下面例子中 a 为 None,我却想获取 a 的索引值。

项目中遇到这种错误,需要先去找下 a 值是怎么来的,然后根据代码上下,判断是数据读取问题还是代码写错了。

a = None
1 if a else int(a['b'])

image.png

用处不大

1、add-apt-repository 安装使用

add-apt-repository 是 Python 脚本,允你将 apt 存储库添加到 /etc/apt/sources.list 或者作为单个文件添加 /etc/apt/sources.list.d 目录中。该命令还可以用于删除已经存在的存储库。

要安装它,请运行以下命令:

sudo apt update
sudo apt install software-properties-common

使用 add-apt-repository 添加存储库,安装软件参考:https://www.myfreax.com/how-to-add-apt-repository-in-ubuntu/

2、cmake 升级

去官网下载自己需要的版本安装包,解压后编译安装即可。

https://cmake.org/files/
wget https://cmake.org/files/v3.17/cmake-3.17.5.tar.gz
tar xvf cmake-3.17.5.tar.gz
cd cmake-3.17.5
./bootstrap --prefix=/usr
'''
如果出现错误:Could not find OpenSSL
apt update
apt install libssl-dev
'''
make
make install

image.png

3、'utf-8' codec can't decode byte 0xa3?

读取编码改成unicode_escape。

flag = 0
with open('./wifi密码本.txt', 'r', encoding='unicode_escape') as f:
    # 遍历密码
    for pwd in f:
        # 去除密码的末尾换行符
        pwd = pwd.strip('\n')
        print(pwd)
        flag += 1
        if flag > 10:
            break

4、Python 3.5 添加到 jupyter notebook kernel中的问题?

pip install ipykernel
python -m ipykernel install --name py35
'''
  File "/Users/admin/opt/anaconda3/envs/py35/lib/python3.5/site-packages/jupyter_client/channels.py", line 47
    time_to_dead: float = 1.0
                ^
SyntaxError: invalid syntax
'''

出现上面错误是因为安装的包版本不对的原因。

首先conda 搜索适合 python3.5 的 ipykernel、jupyter_client 包,并安装对应版本,最后添加即可。

conda search ipykernel | grep py35
'''
ipykernel                      4.6.1  py35h9865fc8_0  anaconda/pkgs/main  
ipykernel                      4.7.0  py35h2f9c1c0_0  anaconda/pkgs/main  
ipykernel                      4.8.0          py35_0  anaconda/pkgs/main  
ipykernel                      4.8.2          py35_0  anaconda/pkgs/main  
ipykernel                      4.9.0          py35_0  anaconda/pkgs/main  
ipykernel                      4.9.0          py35_1  anaconda/pkgs/main  
ipykernel                     4.10.0          py35_0  anaconda/pkgs/main  
'''
pip install ipykernel==4.10.0 
conda search jupyter_client | grep py35
'''
jupyter_client                 5.1.0  py35hfe06ecd_0  anaconda/pkgs/main  
jupyter_client                 5.2.1          py35_0  anaconda/pkgs/main  
jupyter_client                 5.2.2          py35_0  anaconda/pkgs/main  
jupyter_client                 5.2.3          py35_0  anaconda/pkgs/main  
'''
pip install jupyter_client==5.2.3
python -m ipykernel install --name py35
'''
Installed kernelspec py35 in /usr/local/share/jupyter/kernels/py35
'''

英语

malicious
英 [məˈlɪʃəs]   美 [məˈlɪʃəs]  
adj.恶意的;恶毒的
drag
英 [dræɡ]   美 [dræɡ]  
v.(用鼠标)拖动
n.拖累;令人厌烦的人;乏味无聊的事
potentially
英 [pə'tenʃəli]   美 [pə'tenʃəli]  
adv.潜在地


今天分享就这些啦,希望对大家有所帮助,这是一个新栏目,总结下每天遇到的问题,记录分享给大家。喜欢就点个赞~

相关文章
|
Linux 编译器 C语言
Linux五大步安装Python
Linux五大步安装Python
918 0
Linux五大步安装Python
|
11月前
|
Linux C语言 Python
|
Linux 开发者 Python
Linux 下如何安装 Python 3(下)|学习笔记
快速学习 Linux 下如何安装 Python 3(下)
94 0
Linux 下如何安装 Python 3(下)|学习笔记
|
SQL 数据挖掘 Linux
一日多技,技能-Linux-Python-Life 001
一日多技,技能-Linux-Python-Life 001
100 0
一日多技,技能-Linux-Python-Life 001
|
JavaScript 数据挖掘 TensorFlow
一日多技,技能-Linux-Python-Life 003
一日多技,技能-Linux-Python-Life 003
一日多技,技能-Linux-Python-Life 003
|
SQL JSON 数据挖掘
一日多技,技能-Linux-Python-Life 004
一日多技,技能-Linux-Python-Life 004
一日多技,技能-Linux-Python-Life 004
|
Linux C语言 开发者
Linux 下如何安装 Python 3(上)|学习笔记
快速学习 Linux 下如何安装 Python 3(上)
423 0
Linux 下如何安装 Python 3(上)|学习笔记
|
Java Linux C#
【python | linux08】对象编程-超详细超全面
面向对象(object-oriented ;简称: OO) 至今还没有统一的概念 我这里把它定义为: 按人们认识客观世界的系统思维方式,采用基于对象(实体) 的概念建立模型,模拟客观世界分析、设计、实现软件的办法。 面向对象编程(Object Oriented Programming-OOP) 是一种解决软件复用的设计和编程方法。 这种方法把软件系统中相近相似的操作逻辑和操作应用数据、状态,以类的型式描述出来,以对象实例的形式在软件系统中复用,以达到提高软件开发效率的作用。............
94 0
【python | linux08】对象编程-超详细超全面
|
Linux 网络安全 C语言
Linux下Python3.6的安装及避坑指南
Linux下Python3.6的安装及避坑指南
342 0
Linux下Python3.6的安装及避坑指南
|
Linux Python
linux和python详细课件
linux和python详细课件
83 0