一文多发平台的程序ArtiPub

Article publishing platform that automatically distributes your articles to various media channels .

ArtiPub (Article Publisher 的简称,意为 "文章发布者") 是一款开源的一文多发平台,可以帮助文章作者将编写好的文章自动发布到掘金、SegmentFault、CSDN、知乎、开源中国等技术媒体平台,传播优质知识,获取最大的曝光度。ArtiPub 安装简单,提供了多种安装方式,可以一键安装使用,安装一般只要 5 分钟。

ArtiPub 目前支持文章编辑、文章发布、数据统计的功能,后期我们会加入存量文章导入、数据分析的功能,让您更好的管理、优化您的技术文章。此外,我们还会接入更多媒体渠道,真正做到让文章随处可阅。

增加登录注册功能之后,mongodb表结构发生较大变化,前后不兼容,建议重命名mongodb库名以做备份,后端应用启动后会重新初始化 artipub 库,再迁移原来文章至新表.

由于各个平台会不定期更新文章发布页面,所以部分平台可能会失效,没有那么及时更新支持。请勿发布垃圾文章,否则账号可能会被对应平台封禁。

支持平台

git clone 备用地址

如若github clone网络过慢,可使用如下同步更新的国内仓库。

预览截图

登录注册

平台管理

文章管理

文章编辑

文章发布

Chrome 插件

安装要求

NPM 或源码安装

  • MongoDB: 3.6+
  • NodeJS: 10+
  • NPM: > 5+ , < 7+

安装方式

ArtiPub 提供 3 种安装方式如下。

  • [npm](# 通过 npm 包安装) (大约 3 分钟): 适合熟悉 Node.js 或 npm 的开发者
  • [源码](# 通过源码安装) (大约 5-10 分钟): 适合希望了解内核原理的开发者

通过 npm 包安装

如果您对 npm 熟悉,且已经有 MongoDB 的环境,这是最为快捷的方式。

从0.1.6版本开始前后端分开打包.

安装 artipub-front 前端包

artipub-front

安装 artipub-backend 后端包

artipub-backend

安装 npm 包时,为了加速下载速度,可以加入 --registry 参数来设置镜像源(后面源码安装时也可以这样操作)

npm install -g artipub-frontend --registry=https://registry.npm.taobao.org

成功运行后,在浏览器中输入 http://localhost:8000 可以看到界面。

通过源码安装

克隆 Github Repo

安装 npm 包

cd artipub/frontend
npm install

cd artipub/backend
npm install

启动前端

//frontend 目录下
npm run dev

启动后端

//backend 目录下
npm run dev

//运行prod 需先全局安装pm2
npm i pm2 -g
npm run prod

配置数据库

数据库的配置在 backend/src/config.ts 中,可以按情况配置。

配置后端 API 地址

如果您部署的服务不在本机,需要在 frontend/src/constants.ts 中将 apiEndpoint 改成对应的 IP 地址 + 端口。

原理

利用了爬虫技术将文章发布到各大平台。ArtiPub 的爬虫是用了 Google 开发的自动化测试工具 Puppeteer,这个工具不仅可以获取需要有 ajax 动态内容的数据,还可以来做一些模拟操作,类似于 Selenium,但更强大。如何进行登陆操作呢?其实 ArtiPub 是通过 Chrome 插件获取了用户登陆信息(Cookie),将 Cookie 注入到 Puppeteer 操作的 Chromium 浏览器中,然后浏览器就可以正常登陆网站进行发文操作了。Cookie 是保存在用户自己搭建的 MongoDB 数据库里,不对外暴露,因此很安全。

下图是 ArtiPub 的架构示意图:

img

架构原理简介如下:

  • 后端(Backend)是整个架构的中枢,负责给前端交换数据、储存读取数据库、控制爬虫、收集 Cookie 等;
  • Chrome 插件(Chrome Extension)只负责从网站(Sites)获取 Cookie;
  • 爬虫(Spiders)被后端控制,负责在网站上发布文章和抓取数据;
  • 数据库(MongoDB)负责储存数据;
  • 前端(Frontend)是一个 React 应用,是 Ant Design Pro 改造而来的。

为什么创建 ArtiPub

程序员和技术人员常常会写技术文章和博客,用作技术分享、产品分享或提供咨询等等。技术博主通常需要在多个媒体渠道发布文章,例如掘金、SegmentFault、CSDN、知乎、简书、微信公众号等等,以求最大的关注度。但是,发布文章到这么多平台费时费神,需要不断地复制粘贴;同时,作者想查看阅读数时还需要来回切换各个网站来进行统计。这非常不方便。ArtiPub 主要就是为了来解决上述这些问题的。

市面上已经存在一文多发平台了,例如 OpenWrite,为何还要创建 ArtiPub 呢?或许其他一文多发平台也是一个替代方案,但它们要求用户将自己的账户信息例如 Cookie 或账号密码上传到对方服务器,这很不安全,一旦平台发生问题,自己的账户信息会遭到泄漏。虽然我相信一般平台不会恶意操作用户的账户,但如果出现误操作,您的账户隐私将遭到泄漏,平台上的财产也可能遭到损坏,有这样的风险需要考虑。ArtiPub 不要求用户上传账户信息,所有账户信息全部保存在用户自己的数据库里,因此规避了这个安全风险。

另外,由于 ArtiPub 是开源的,JS 源码也比较易于理解,可扩展性很强,用户如果有其他平台的接入需求,完全可以更改源码来实现自己的需求,不用等待平台更新。开发组也将持续开发 ArtiPub,将其打造得更实用和易用。

from 

https://github.com/crawlab-team/artipub

-------------------------------------------------

一文多发平台ArtiPub

 

ArtiPub是国人开发的一文多发平台,遵守BSD 3-Clause 开源协议。基于JS编写,可扩展性强。可以帮助文章作者将编写好的文章自动发布到掘金、SegmentFault、CSDN、知乎、开源中国等技术媒体平台,传播优质知识,获取最大的曝光度。ArtiPub安装简单,提供了多种安装方式,可以一键安装使用。ArtiPub目前支持文章编辑、文章发布、数据统计的功能。ArtiPub不要求用户上传账户信息,所有账户信息全部保存在用户自己的数据库里,避免了第三方平台账户隐私泄漏的风险。

[repo owner=”crawlab-team” name=”artipub”]

前端开发工作流工具WeFlow

WeFlow是微信前端团队开源的前端开发工作流工具,无需安装任何环境依赖即可使用。

自动化流程

    Less -> CSS (Sass 可自行定制)
    CSS Autoprefixer 前缀自动补全
    自动生成图片 CSS 属性,width & height 等
    CSS 压缩 cssnano
    CSS Sprite 雪碧图合成
    Retina @2x & @3x 自动生成适配
    imagemin 图片压缩
    JS 合并压缩
    EJS 模版语言

[repo owner=”weixin” name=”WeFlow”]

-------------------------------------------------

A web developer workflow tool by WeChat team based on tmt-workflow, with cross-platform supported and environment ready.

github.com/Tencent/feflow

后续需求会合并到 Feflow 项目进行开发迭代,请移步:

WeFlow Version Number

一个基于 tmt-workflow 前端工作流的开发工具。 (已支持最新版 Node.js)
官网:https://weflow.io/
目前已支持了:微信游戏、微信·朋友圈广告、微信·城市服务等项目的 第三方合作团队 的前端构建工作,如果你更习惯命令行操作,可以直接使用 WeFlow 的核心:基于 Gulp 开发的 tmt-workflow :)

下载&安装

Github Release 下载官网高速下载分流
(支持 macOS / Windows / Linux 操作系统)

界面预览

Screenshot

开发环境

  • Electron 版本:v0.37.8
  • Node 版本 :v5.10.0

更新日志

本期更新 v1.3.3

  • 增加 ES6 编译支持
  • 增加 SVG 支持
  • 修复合并JS Bug #104
  • 服务器配置增加端口配置
  • 优化编译成功时的提示,通过 Notifications 向用户发送通知
  • 优化开发者工具弹出方式

近期更新 v.1.3.2

  • 更新 example
  • 支持 windows 32 位系统
  • 支持 .svg 格式
  • 增加 调试模式(菜单->窗口->调试模式)
  • 增加自动编译
  • 修复一些 bug(不写项目名时无限弹窗、欢迎页时就拖放项目报错等)

from  

https://github.com/Tencent/WeFlow

------------------------------------------------------------------------------------------------

A command line tool aims to improve front-end engineer workflow and standard, powered by TypeScript.

feflowjs.com/

English | 简体中文

Feflow

🚀 A tool aims to improve front-end engineer workflow and standard, powered by TypeScript.

 

npm Build Status Install Size Downloads lerna GitHub contributors Issue resolution PR's welcome

Introduction

Feflow is an engineering solution of Tencent's open source front-end field, which is committed to improving development efficiency and specification.

Getting Started

Let's start by installing Feflow with npm.

npm install @feflow/cli -g

There are three kinds of commands in Feflow

  • Native Commands
    • fef config
    • fef help
    • fef info
    • fef install
    • fef uninstall
    • fef list

You can write a Feflow devkit or plugin to extends commands.

More detail document can be found:

Every release, along with the migration instructions, is documented on the GitHub Releases page.

from 

https://github.com/Tencent/feflow

Mac版微信拓展功能开源工具-WeChatExtension

WeChatExtension是Mac OS下微信的扩展功能开源小工具,支持防撤回、多开、屏蔽更新等功能。软件遵守MIT开源协议。

主要特性功能:

    同时支持自定义回复和AI自动撩妹
    手机端也能收到被撤回的消息
    免认证登录与多开
    消息防撤回
    显示小程序详情
    退群监控
    屏蔽更新

快速安装方法:

打开应用程序-实用工具-Terminal(终端),执行下面的命令安装 Oh My WeChat(https://github.com/lmk123/oh-my-wechat):安装完成后会自动安装微信插件

curl -o- -L https://raw.githubusercontent.com/lmk123/oh-my-wechat/master/install.sh | bash -s

[repo owner=”MustangYM” name=”WeChatExtension-ForMac”]

https://github.com/MustangYM/WeChatExtension-ForMac

------------------------------------------------------------------------------


功能增强的第三方微信PC客户端Electronic WeChat

Electronic WeChat是第三方的微信开源PC客户端, 支持Mac OS 和 Linux 操作系统。遵守MIT开源协议。软件做了很多本地优化工作,包括自适应窗口、docker上的消息计数,表情贴纸注入等。

功能特色:

    包含Web版微信所有特性 
    禁止撤销消息  
     表情贴纸注入
    共享Weibo, Qzone, Facebook, Twitter, Evernote .
    @用户.
    拖拽发图片.
    去掉 URL重定向,直链封锁的网址 (如. taobao.com).

[repo owner=”geeeeeeeeek” name=”electronic-wechat”]

MacOS 10.15 Catalina 安装 app, 提示已损坏,无法打开的解决方法

MacOS 10.15 Catalina 发布后,很多用户都进行了更新升级,但是很多人遇到了这样一个问题,比如安装破解版的 app 时,会提示【“xxx”已损坏,无法打开。您应该将它移到废纸篓。】

按照以往的方法,在系统的【安全与隐私】中已经允许了【任何来源】,但依然不可以。

解决方案(前提是已经在【安全与隐私】中开启了【任何来源】):
方法如下:
1、打开终端(Terminal),
2、输入以下命令后回车,如需要,请输入密码,
命令:[sudo xattr -r -d com.apple.quarantine <path>]
注:去掉两端的中括号
命令行中的 <path>,是你要打开的app的路径,可以将 app 拖到终端里,回车以后,
3、再去【应用程序】里面打开对应的 app 就可以打开了。
注:path 前面有空格哦
-----------------------------------------------------------------------------

M1芯片的Mac运行软件闪退崩溃的解决方法

个别支持M1芯片的通用型应用在M1芯片的Mac运行时会闪退,可以尝试改变将应用使用Rosetta打开,大部分能够解决。有需要的小伙伴可以操作试一试。

以Sketch 70.2 为例:

1.选中Sketch图标后,鼠标右键,在菜单中点击「显示简介」(或者按 Command+i 快捷键)。

2.勾选「使用 Rosetta 打开」后即可。

注意:没有此选项的应用不是通用型应用。

百度的深度学习平台PaddlePaddle

PaddlePaddle是百度开源的深度学习平台,具有易用,高效,灵活和可伸缩等特点,已为百度内部多项产品提供深度学习算法支持,在深度学习框架方面,覆盖了搜索、图像识别、语音语义识别理解、情感分析、机器翻译、用户画像推荐等多领域的业务和技术, 如外卖的预估出餐时间、预判网盘故障时间点、精准推荐用户所需信息、海量图像识别分类、字符识别(OCR)、病毒和垃圾信息检测、机器翻译和自动驾驶等领域。

特性:

*易用性是PaddlePaddle的设计核心之一,它为用户提供了直观且灵活的数据接口和模型定义接口。

*PaddlePaddle支持多种神经网络结构和优化算法。简单书写配置文件即可实现复杂模型,如带注意力机制或复杂记忆连接的神经机器翻译模型。

*为充分发挥多种计算资源的效力,PaddlePaddle在计算、存储、架构、通信等多方面都做了细致优化,性能优异。

*PaddlePaddle全面支持多核、多GPU、多机环境,优化的通信实现使高吞吐与高性能成为可能,轻松应对大规模数据训练需求。

官网:http://www.paddlepaddle.org.cn

-------------------------------------------------

  • 执行以下命令安装:
python -m pip install paddlepaddle-gpu==2.4.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
from

https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/install/pip/linux-pip.html

--------------------------------------------------------

Linux下,从源码编译

环境准备

  • Linux 版本 (64 bit)

    • CentOS 6 (不推荐,不提供编译出现问题时的官方支持)

    • CentOS 7 (GPU 版本支持 CUDA 10.1/10.2/11.1/11.2/11.6/11.7)

    • Ubuntu 14.04 (不推荐,不提供编译出现问题时的官方支持)

    • Ubuntu 16.04 (GPU 版本支持 CUDA 10.1/10.2/11.1/11.2/11.6/11.7)

    • Ubuntu 18.04 (GPU 版本支持 CUDA 10.1/10.2/11.1/11.2/11.6/11.7)

  • Python 版本 3.6/3.7/3.8/3.9/3.10 (64 bit)

选择 CPU/GPU

  • 如果您的计算机没有 NVIDIA® GPU,请安装 CPU 版本的 PaddlePaddle

  • 如果您的计算机有 NVIDIA® GPU,请确保满足以下条件以编译 GPU 版 PaddlePaddle

    • CUDA 工具包 10.1 配合 cuDNN 7 (cuDNN 版本>=7.6.5, 如需多卡支持,需配合 NCCL2.7 及更高;不支持使用 TensorRT)

    • CUDA 工具包 10.2 配合 cuDNN 7 (cuDNN 版本>=7.6.5, 如需多卡支持,需配合 NCCL2.7 及更高;如需使用 PaddleTensorRT 推理,需配合 TensorRT7.0.0.11)

    • CUDA 工具包 11.1 配合 cuDNN v8.1.1(如需多卡支持,需配合 NCCL2.7 及更高;如需使用 PaddleTensorRT 推理,需配合 TensorRT7.2.3.4)

    • CUDA 工具包 11.2 配合 cuDNN v8.1.1(如需多卡支持,需配合 NCCL2.7 及更高;如需使用 PaddleTensorRT 推理,需配合 TensorRT8.0.3.4)

    • CUDA 工具包 11.6 配合 cuDNN v8.4.0(如需多卡支持,需配合 NCCL2.7 及更高;如需使用 PaddleTensorRT 推理,需配合 TensorRT8.4.0.6)

    • CUDA 工具包 11.7 配合 cuDNN v8.4.1(如需多卡支持,需配合 NCCL2.7 及更高;如需使用 PaddleTensorRT 推理,需配合 TensorRT8.4.2.4)

    • GPU 运算能力超过 3.5 的硬件设备

      您可参考 NVIDIA 官方文档了解 CUDA、CUDNN 和 TensorRT 的安装流程和配置方法,请见CUDAcuDNNTensorRT

安装步骤

在 Linux系统下的编译

本机编译

1. 检查您的计算机和操作系统是否符合我们支持的编译标准:

uname -m && cat /etc/*release

2. 更新系统源

  • Centos 环境

    更新yum的源:

    yum update
    

    并添加必要的 yum 源:

    yum install -y epel-release
    
  • Ubuntu 环境

    更新apt的源:

    apt update
    

3. 安装 NCCL(可选)

  • 如果您需要使用 GPU 多卡,请确保您已经正确安装 nccl2,或者按照以下指令安装 nccl2(这里提供的是 CUDA10.2,cuDNN7 下 nccl2 的安装指令,更多版本的安装信息请参考 NVIDIA官方网站):

    • Centos 系统可以参考以下命令

      wget http://developer.download.nvidia.com/compute/machine-learning/repos/rhel7/x86_64/nvidia-machine-learning-repo-rhel7-1.0.0-1.x86_64.rpm
      
      rpm -i nvidia-machine-learning-repo-rhel7-1.0.0-1.x86_64.rpm
      
      yum update -y
      
      yum install -y libnccl-2.7.8-1+cuda10.2 libnccl-devel-2.7.8-1+cuda10.2 libnccl-static-2.7.8-1+cuda10.2
      
    • Ubuntu 系统可以参考以下命令

      wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb
      
      dpkg -i nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb
      
      sudo apt install -y libnccl2=2.7.8-1+cuda10.2 libnccl-dev=2.7.8-1+cuda10.2
      

4. 安装必要的工具

  • Centos 环境

    bzip2以及make

    yum install -y bzip2
    
    yum install -y make
    

    cmake 需要 3.15 以上,建议使用 3.16.0:

    wget -q https://cmake.org/files/v3.16/cmake-3.16.0-Linux-x86_64.tar.gz
    
    tar -zxvf cmake-3.16.0-Linux-x86_64.tar.gz
    
    rm cmake-3.16.0-Linux-x86_64.tar.gz
    
    PATH=/home/cmake-3.16.0-Linux-x86_64/bin:$PATH
    

    gcc 需要 5.4 以上,建议使用 8.2.0:

    wget -q https://paddle-docker-tar.bj.bcebos.com/home/users/tianshuo/bce-python-sdk-0.8.27/gcc-8.2.0.tar.xz && \
    tar -xvf gcc-8.2.0.tar.xz && \
    cd gcc-8.2.0 && \
    sed -i 's#ftp://gcc.gnu.org/pub/gcc/infrastructure/#https://paddle-ci.gz.bcebos.com/#g' ./contrib/download_prerequisites && \
    unset LIBRARY_PATH CPATH C_INCLUDE_PATH PKG_CONFIG_PATH CPLUS_INCLUDE_PATH INCLUDE && \
    ./contrib/download_prerequisites && \
    cd .. && mkdir temp_gcc82 && cd temp_gcc82 && \
    ../gcc-8.2.0/configure --prefix=/usr/local/gcc-8.2 --enable-threads=posix --disable-checking --disable-multilib && \
    make -j8 && make install
    
  • Ubuntu 环境

    bzip2以及make

    apt install -y bzip2
    
    apt install -y make
    

    cmake 需要 3.15 以上,建议使用 3.16.0:

    wget -q https://cmake.org/files/v3.16/cmake-3.16.0-Linux-x86_64.tar.gz
    
    tar -zxvf cmake-3.16.0-Linux-x86_64.tar.gz
    
    rm cmake-3.16.0-Linux-x86_64.tar.gz
    
    PATH=/home/cmake-3.16.0-Linux-x86_64/bin:$PATH
    

    gcc 需要 5.4 以上,建议使用 8.2.0:

    wget -q https://paddle-docker-tar.bj.bcebos.com/home/users/tianshuo/bce-python-sdk-0.8.27/gcc-8.2.0.tar.xz && \
    tar -xvf gcc-8.2.0.tar.xz && \
    cd gcc-8.2.0 && \
    sed -i 's#ftp://gcc.gnu.org/pub/gcc/infrastructure/#https://paddle-ci.gz.bcebos.com/#g' ./contrib/download_prerequisites && \
    unset LIBRARY_PATH CPATH C_INCLUDE_PATH PKG_CONFIG_PATH CPLUS_INCLUDE_PATH INCLUDE && \
    ./contrib/download_prerequisites && \
    cd .. && mkdir temp_gcc82 && cd temp_gcc82 && \
    ../gcc-8.2.0/configure --prefix=/usr/local/gcc-8.2 --enable-threads=posix --disable-checking --disable-multilib && \
    make -j8 && make install
    

5. 我们支持使用 virtualenv 进行编译安装,首先请使用以下命令创建一个名为paddle-venv的虚环境:

  • a. 安装 Python-dev:

    (请参照 Python 官方流程安装)

  • b. 安装 pip:

    (请参照 Python 官方流程安装, 并保证拥有 20.2.2 及以上的 pip3 版本,请注意,python3.6 及以上版本环境下,pip3 并不一定对应 python 版本,如 python3.7 下默认只有 pip3.7)

  • c.(Only For Python3)设置 Python3 相关的环境变量,这里以 python3.7 版本示例,请替换成您使用的版本(3.6、3.8、3.9、3.10):

    1. 首先使用

      find `dirname $(dirname $(which python3))` -name "libpython3.so"
      

      找到 Python lib 的路径,如果是 3.6、3.7、3.8、3.9、3.10,请将python3改成python3.6python3.7python3.8python3.9python3.10,然后将下面[python-lib-path]替换为找到文件路径

    2. 设置 PYTHON_LIBRARIES:

      export PYTHON_LIBRARY=[python-lib-path]
      
    3. 其次使用

      find `dirname $(dirname $(which python3))`/include -name "python3.7m"
      

      找到 Python Include 的路径,请注意 python 版本,然后将下面[python-include-path]替换为找到文件路径

    4. 设置 PYTHON_INCLUDE_DIR:

      export PYTHON_INCLUDE_DIRS=[python-include-path]
      
    5. 设置系统环境变量路径:

      export PATH=[python-lib-path]:$PATH
      

      (这里将[python-lib-path]的最后两级目录替换为/bin/)

  • d. 安装虚环境virtualenv以及virtualenvwrapper并创建名为paddle-venv的虚环境:(请注意对应 python 版本的 pip3 的命令,如 pip3.6、pip3.7、pip3.8、pip3.9、pip3.10)

    1. 安装virtualenv

      pip install virtualenv
      

      pip3 install virtualenv
      
    2. 安装virtualenvwrapper

      pip install virtualenvwrapper
      

      pip3 install virtualenvwrapper
      
    3. 找到virtualenvwrapper.sh

      find / -name virtualenvwrapper.sh
      

      (请找到对应 Python 版本的virtualenvwrapper.sh

    4. 查看virtualenvwrapper.sh中的安装方法:

      cat vitualenvwrapper.sh
      

      该 shell 文件中描述了步骤及命令

    5. 按照virtualenvwrapper.sh中的描述,安装virtualwrapper

    6. 设置 VIRTUALENVWRAPPER_PYTHON:

      export VIRTUALENVWRAPPER_PYTHON=[python-lib-path]:$PATH
      

      (这里将[python-lib-path]的最后两级目录替换为/bin/)

    7. 创建名为paddle-venv的虚环境:

      mkvirtualenv paddle-venv
      

6. 进入虚环境:

workon paddle-venv

7. 执行编译前请您确认在虚环境中安装有编译依赖表中提到的相关依赖:

  • 这里特别提供patchELF的安装方法,其他的依赖可以使用yum install或者pip install/pip3 install 后跟依赖名称和版本安装:

    yum install patchelf
    

    不能使用 yum 安装的用户请参见 patchElF github官方文档

8. 将 PaddlePaddle 的源码 clone 在当下目录下的 Paddle 的文件夹中,并进入 Padde 目录下:

git clone https://github.com/PaddlePaddle/Paddle
cd Paddle

9. 切换到较稳定 release 分支下进行编译:

git checkout [分支名]

例如:

git checkout release/2.4

10. 并且请创建并进入一个叫 build 的目录下:

mkdir build && cd build

11. 执行 cmake:

具体编译选项含义请参见编译选项表

  • 对于需要编译CPU 版本 PaddlePaddle的用户:

    cmake .. -DPY_VERSION=3.7 -DPYTHON_INCLUDE_DIR=${PYTHON_INCLUDE_DIRS} \
    -DPYTHON_LIBRARY=${PYTHON_LIBRARY} -DWITH_GPU=OFF
    

    如果遇到Could NOT find PROTOBUF (missing:  PROTOBUF_LIBRARY PROTOBUF_INCLUDE_DIR)可以重新执行一次 cmake 指令。 请注意 PY_VERSION 参数更换为您需要的 python 版本

  • 对于需要编译GPU 版本 PaddlePaddle的用户:(仅支持 CentOS7(CUDA11.7/CUDA11.6/CUDA11.2/CUDA11.1/CUDA10.2/CUDA10.1))

    1. 请确保您已经正确安装 nccl2,或者按照以下指令安装 nccl2(这里提供的是 CUDA10.2,cuDNN7 下 nccl2 的安装指令,更多版本的安装信息请参考 NVIDIA官方网站):

    • Centos 系统可以参考以下命令

      wget http://developer.download.nvidia.com/compute/machine-learning/repos/rhel7/x86_64/nvidia-machine-learning-repo-rhel7-1.0.0-1.x86_64.rpm
      
      rpm -i nvidia-machine-learning-repo-rhel7-1.0.0-1.x86_64.rpm
      
      yum install -y libnccl-2.7.8-1+cuda10.2 libnccl-devel-2.7.8-1+cuda10.2 libnccl-static-2.7.8-1+cuda10.2
      
    • Ubuntu 系统可以参考以下命令

      wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb
      
      dpkg -i nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb
      
      sudo apt install -y libnccl2=2.7.8-1+cuda10.2 libnccl-dev=2.7.8-1+cuda10.2
      
    1. 如果您已经正确安装了nccl2,就可以开始 cmake 了:(For Python3: 请给 PY_VERSION 参数配置正确的 python 版本)

      cmake .. -DPYTHON_EXECUTABLE:FILEPATH=[您可执行的 Python3 的路径] -DPYTHON_INCLUDE_DIR:PATH=[之前的 PYTHON_INCLUDE_DIRS] -DPYTHON_LIBRARY:FILEPATH=[之前的 PYTHON_LIBRARY] -DWITH_GPU=ON
      

注意:以上涉及 Python3 的命令,用 Python3.7 来举例,如您的 Python 版本为 3.6/3.8/3.9/3.10,请将上述命令中的 Python3.7 改成 Python3.6/Python3.8/Python3.9/Python3.10

12. 使用以下命令来编译:

make -j$(nproc)

使用多核编译

如果编译过程中显示“Too many open files”错误时,请使用指令 ulimit -n 8192 来增大当前进程允许打开的文件数,一般来说 8192 可以保证编译完成。

13. 编译成功后进入/paddle/build/python/dist目录下找到生成的.whl包:

cd /paddle/build/python/dist

14. 在当前机器或目标机器安装编译好的.whl包:

pip install -U(whl 包的名字)

pip3 install -U(whl 包的名字)

恭喜,至此您已完成 PaddlePaddle 的编译安装

验证安装

安装完成后您可以使用 pythonpython3 进入 python 解释器,输入

import paddle

再输入

paddle.utils.run_check()

如果出现PaddlePaddle is installed successfully!,说明您已成功安装

如何卸载

请使用以下命令卸载 PaddlePaddle:

 




无线调频软件CubicSDR

CubicSDR是一款跨平台的软件定义的无线电 (SDR) 开源软件,基于软件定义的无线通信协议针对构建多模式、多频和多功能无线通信设备的问题提供有效而安全的解决方案, 允许操作无线电频谱和解调可能发现的任意信号。包括一些常规模拟解调模式,比如 AM 和 FM等。硬件支持使用价格低廉的Realtek RTL。此外CubicSDR还支持SDRPlay,HackRF,BladeRF,AirSpy,NetSDR +,Red Pitaya,或具有可用SoapySDR支持模块的任何其他设备。CubicSDR遵守GPL开源协议。

[repo owner=”cjcliffe” name=”CubicSDR”]

-----------------------------------------------------------------

Cross-Platform Software-Defined Radio Application.

www.cubicsdr.com

 CircleCI

Utilizes:

Optional Libs:

  • Multi-core processor system with at least 1GB RAM.
  • Graphics card with at least 128MB video memory and OpenGL 3.x or ES 2.0 support.
  • OSX 10.9+ for Mac binary releases.
  • Windows 7+ for 64 or 32-bit Windows binary releases.
  • Linux and other embedded distribution support yet to be indexed, known to at least work on Debian 8+ and Ubuntu 14+.

Target Platforms:

  • OSX
  • Windows
  • Linux

from 

https://github.com/cjcliffe/CubicSDR