建议写文件路径的时候写成 相对路径
这样传到服务器端也能直接运行
1.Linux命令
conda相关
conda info -e
查看所有环境
conda info --e
conda info --envs
conda env list
conda activate pytorch
激活对应环境
文件处理相关
显示 permission denied 就在命令前面加上 sudo
cd MyFolderName
进入到需要运行的文件夹下
cd SD/ChangeDetection/FolderName
进入子文件夹
cd ..
上层目录
cd
切换到主目录
pwd
查看当前路径
ls
查看文件夹列表 (list的缩写) 用法:ls [参数] [文件]
如 ls -l
查看文件详细信息。缩写 ll
ls -lht
列出当前目录下所有文件的大小
mkdir FolderName
新建文件夹
mkdir -p this/that/theother
建立嵌套子目录
rm -r FolderName
删除文件夹
sudo rm -r FolderName
mv aflie bfile
将 afile 重命名为 bfile
mv afile FolderName
把当前目录下的afile移动到 当前目录 FolderName 文件夹
mv afile ../
移动到上层目录
zip -r mydata.zip myfolder
-r 压缩文件夹;-q 安静模式。
unzip mydata.zip -d myfloder
解压缩到指定文件夹(文件名可以不加后缀,若目标文件夹不存在会自动新建)
unrar x mydata.rar
会在当前解压目录内产生一个以压缩包名字命名的目录,目录内是解压内容,推荐使用
其他解压缩命令:tar(待补充)
python之后别忘了输入exit()退出python,才可重新进入命令行模式
查看linux系统版本
cat /etc/redhat-release
主要针对redhat系列,redhat,centos都可以通过此命令查看
vim文本编辑器(待办)
先要装一个vim
vim **.py
insert 插入模式修改
esc之后保存 :wq
其他
tab 键 自动扩充代码
clear
清屏
nvidia-smi
查看GPU占用情况
清内存? 一般是kill掉这里显示但 nvidia-smi没有显示的
fuser -v /dev/nvidia*
kill -9 PID
pkill -9 python
# 根据进程名(python)杀死进程
ps aux|grep python
gcc安装(CentOS7)
注意:GCC是Linux的核心模块,升级可能会导致一些问题,请谨慎升级,升级之前做好备份工作。
查看gcc版本:
查看是否有多个gcc: ls /usr/bin/gcc*
1、安装所需工具:
sudo yum groupinstall -y 'Development Tools'
sudo yum install -y texinfo bison flex gcc-gnat glibc-devel.i686 libgcc.i686
# 安装 i686 的包是为了安装32位的头文件和库,如果不安装i686的包,请在 configure 时加入--disable-multilib,取消对32位的支持。
2、下载GCC 8.2.0
lftp -c "pget -n20 http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-8.2.0/gcc-8.2.0.tar.gz"
3、解压源码包
tar -zxf gcc-8.2.0.tar.gz
4、下载GCC需要的依赖:gmp、mpfr、mpc、isl
cd gcc-8.2.0
./contrib/download_prerequisites
5、执行 configure 生成Makefile:
mkdir build && cd build
# 失败
../configure --prefix=/storage/app/gnu/gcc-8.2.0 \
--enable-bootstrap \
--enable-shared \
--enable-threads=posix \
--enable-checking=release \
--with-system-zlib \
--enable-__cxa_atexit \
--disable-libunwind-exceptions \
--enable-gnu-unique-object \
--enable-linker-build-id \
--with-linker-hash-style=gnu \
--enable-languages=c,c++,objc,obj-c++,fortran,ada,go,lto \
--enable-plugin \
--enable-initfini-array \
--disable-libgcj \
--enable-gnu-indirect-function \
--with-tune=generic \
--with-arch_32=x86-64 \
--build=x86_64-redhat-linux
# 成功 但是make报错
../configure --prefix=/usr --enable-multilib --enable-languages=c,c++ -disable-multilib
# 成功
../configure --prefix=/usr/local/gcc-8.2.0 --disable-multilib --enable--long-long --enable-threads=posix
../configure --prefix=/usr/local/gcc-8.2.0 --disable-multilib --enable-bootstrap --enable-checking=release --enable-languages=c,c++
../configure --enable-bootstrap --enable-languages=c,c++ --enable-threads=posix --enable-checking=release --enable-multilib --disable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
6、执行编译
make
or make -j8
说明:-j 参数根据CPU核数设置。 编译时间根据机器配置决定,GCC编译过程一般都需要很长时间,慢慢等待。
7、安装
make install
8、配置环境变量
vim ~/.bash_profile
### gnu gcc
export GCC_HOME=/storage/app/gnu/gcc-8.2.0
export PATH=$GCC_HOME/bin:$PATH
export MANPATH=$GCC_HOME/share/man
export CPATH=$GCC_HOME/include
export LD_LIBRARY_PATH=$GCC_HOME/lib:$GCC_HOME/lib64
export LIBRARY_PATH=$GCC_HOME/lib:$GCC_HOME/lib64
报错 internal compiler error: Segmentation fault (未解决问题)
可能是因为编译时开启较多线程,
解决方案:
先清空编译结果 make clean
用少量线程数重新编译: make -j2
https://blog.csdn.net/qq_15138049/article/details/120891174
报错 centos7中在使用yum遇到“undefined symbol: CRYPTO_num_locks”
centos7中在使用yum遇到“undefined symbol: CRYPTO_num_locks”
gcc 8.3.1安装:
sudo yum install devtoolset-8-gcc devtoolset-8-gcc-c++
scl enable devtoolset-8 bash
2.上传文件(本地文件传输到服务器)
xftp
建议传压缩包,再用命令 解压缩 。但是也很慢。
3. 运行.py
1. Xshell中运行
cd MyFolderName
进入到需要运行的文件夹下
ls
查看文件夹列表
python train.py
运行.py文件
还可以设置GPU,比.py文件中设置的优先级更高
CUDA_VISIBLE_DEVICES=1 python train.py
# 待测试
# 先cd到文件夹 再运行
cd ChangeDetection/FolderName
python train.py
# 直接运行
python ChangeDetection/FolderName/train.py
CUDA_VISIBLE_DEVICES=0 python my_file.py # 指定GPU
CUDA_VISIBLE_DEVICES="0,1" python my_file.py # 多GPU一起使用
2. ★ PyCharm 连接至 服务器 运行
参考 https://www.bilibili.com/video/BV1V44y127uD?vd_source=db1d96e72eebc08243333b73367f662a
PyCharm要用专业版?
记得 从项目中打开文件夹
建议提前用Xshell 复制粘贴 本地文件夹 至 服务器 可以只复制部分文件。
也可以只在Xshell新建文件夹,然后再在 PyCharm中直接将 project 复制至 服务器
(1)设置服务器
File-Settings → Project - Python Interpreter - Add -SSH Interpreter →
输入 Host ; Port ; Username。 以及 密码 or 密钥。
连接成功后然,在Add Python Interpreter 界面 ,选择服务器对应环境下的python.exe
(一般位于 /home/username/anaconda/envs/环境名/bin/python )
建议去掉勾选 自动上传至服务器。后面再去 远程主机 手动设置同步文件夹。
(2)本地-服务器 文件夹连接
Tools - Deployment - Browse Remote Host
→… (Shift+Enter弹出界面)
一定要 重命名 服务器的名字
一定要 重命名 服务器的名字
一定要 重命名 服务器的名字
否则多项目的时候无法 自动更新 本地代码修改 至 服务器。
- Connection(文件夹连接) -Root path (设置 服务器文件夹目录)
- Mappings(文件夹映射): Connection后,点击 Mappings 选项,将 本地文件 映射至 服务器。
建议提前用Xshell 复制粘贴 本地文件夹 至 服务器
至此,成功将本地文件连接至服务器,一般来说,可以实时同步。
若服务器端没有刷新,需要 Upload to (可以对文件夹 或者 单个.py 右击,Deployment-Upload to……)
补充说明
1. 有时候PyCharm 没有自动更新代码至 服务器
一般来说,针对每一个项目,都自动设置好了默认 自动更新代码。
前提是之前修改了 服务器的名字
即使后续 重命名了 本地文件夹名称,也不会影响服务器的连接。
(1)右击服务器名,设置默认即可。
(2)Tools-Deployment- 勾选 Automatic Upload
(3) 终极大法: 删除所有的 服务器 Python Interpreter;以及 Remote Host 。
全部重新设置。
在 重命名 服务器名称后, 目前没有出现这样的问题了
2. 新项目使用之前的服务器设置
打开新项目,设置 服务器的 Python Interpreter, Browse Remote Host 选择 对应的 服务器名,然后 设置 Connection和-Mappings 即可。
可能会出现 1 的 问题。
这里改了 Connection和-Mappings;因此 之前链接这个服务器 相同环境的 Interpreter 的项目就会失效。
如果在远程主机新建一个部署,还是会报找不到文件夹(No such file or directory)
的错误。
猜测:
1.服务器的 Python Interpreter 与 1中的服务器名。要一一对应。(不可以在一个 Python Interpreter 下 新增服务器名。)
2.多个项目 使用相同的服务器环境,更改 Connection和-Mappings即可,先前项目链接失效。再次使用需重新设置。 (暂未找到针对项目设置服务器环境的方法。对项目新建一个服务器名,会报找不到文件的错误)
3. pycharm 远程连接服务器 显示图片(待完成)
pycharm远程连接服务器可以运行代码,但是用 opencv或者Image等不能显示图片
cv2.imshow()
报错: