d******a 发帖数: 32122 | 1 用C++配合pybind11开发了一个package
C++编译了一个.so, 然后python调用
project放在google drive上
我一台机器python 3.9
一台3.10
现在就是每次换机器,都要重新编译那个.so
因为3.10解释器没法import那个在3.9机器上编译的.so
反之亦然
难道以后每次python版本更新,我就得重新编译一下? |
m*****n 发帖数: 3575 | 2 pybind还能编译动态库呢
第一次知道,你厉害。 |
s*******r 发帖数: 21 | 3 不奇怪。python从来不保证backward compatibility,看运气。不知道为啥这么难。
【在 d******a 的大作中提到】 : 用C++配合pybind11开发了一个package : C++编译了一个.so, 然后python调用 : project放在google drive上 : 我一台机器python 3.9 : 一台3.10 : 现在就是每次换机器,都要重新编译那个.so : 因为3.10解释器没法import那个在3.9机器上编译的.so : 反之亦然 : 难道以后每次python版本更新,我就得重新编译一下?
|
W***u 发帖数: 1 | 4 两台机器同时安装3.9和3.10
使用的时候可以指定用哪个python版本
将来你的电脑里可以有3.9 3.10 3.11 3.12 3.13 etc |
d******a 发帖数: 32122 | 5 你中文是csl?
【在 m*****n 的大作中提到】 : pybind还能编译动态库呢 : 第一次知道,你厉害。
|
d******a 发帖数: 32122 | 6 我这个package是打算upload到pypi上的造福大众的
本来windows和linux就两个版本了,每个dll和so还需要为每个python版本定做?这太
麻烦了吧
【在 W***u 的大作中提到】 : 两台机器同时安装3.9和3.10 : 使用的时候可以指定用哪个python版本 : 将来你的电脑里可以有3.9 3.10 3.11 3.12 3.13 etc
|
W***u 发帖数: 1 | 7 所有的用户都应该同时装10个8个版本的python
你上传package的时候要写个readme使用说明,告诉用户应该用哪个版本的python
【在 d******a 的大作中提到】 : 我这个package是打算upload到pypi上的造福大众的 : 本来windows和linux就两个版本了,每个dll和so还需要为每个python版本定做?这太 : 麻烦了吧
|
s*******r 发帖数: 21 | 8 很多人用virtual env,然后弄个requirement,动辄几百兆,很操蛋。
【在 d******a 的大作中提到】 : 我这个package是打算upload到pypi上的造福大众的 : 本来windows和linux就两个版本了,每个dll和so还需要为每个python版本定做?这太 : 麻烦了吧
|
L*********s 发帖数: 3063 | 9 机器上不装python, 所有python程序的release一律封装到docker里。 |
d******a 发帖数: 32122 | 10 我直接用R调用C++了
R不存在这个问题
python然后调R
【在 W***u 的大作中提到】 : 所有的用户都应该同时装10个8个版本的python : 你上传package的时候要写个readme使用说明,告诉用户应该用哪个版本的python
|
d*******r 发帖数: 3299 | 11 用pyenv管理多个开发版本
用poetry发布多个版本到pypi, 非常简单
https://www.youtube.com/watch?v=QX_Nhu1zhlg
【在 d******a 的大作中提到】 : 我这个package是打算upload到pypi上的造福大众的 : 本来windows和linux就两个版本了,每个dll和so还需要为每个python版本定做?这太 : 麻烦了吧
|
C*****l 发帖数: 1 | 12 这种东西一般都是放到Makefile里面动态编译的,话说你为啥要用两个不同version的
python,不同版本有点不同太正常了,为了一致性,甚至连python也要打包放进
package。
【在 d******a 的大作中提到】 : 用C++配合pybind11开发了一个package : C++编译了一个.so, 然后python调用 : project放在google drive上 : 我一台机器python 3.9 : 一台3.10 : 现在就是每次换机器,都要重新编译那个.so : 因为3.10解释器没法import那个在3.9机器上编译的.so : 反之亦然 : 难道以后每次python版本更新,我就得重新编译一下?
|
d******a 发帖数: 32122 | 13 Linux下我用的cmake,最后编译成一个 .so
貌似没问题,只要是同一个版本的python
Windows下用Visual Studio编译成一个 .pyd (就是dll啊)
本机运行没问题,upload到pypi上再pip install就不行了,即便是开发pyd的那台机器
也一样不行。后来一查,还需要把十来个vc++的dll以及python39.dll一起打包
【在 C*****l 的大作中提到】 : 这种东西一般都是放到Makefile里面动态编译的,话说你为啥要用两个不同version的 : python,不同版本有点不同太正常了,为了一致性,甚至连python也要打包放进 : package。
|
C*****l 发帖数: 1 | 14 还要部署双系统,真是蛋疼,就不能透过云端来弄
【在 d******a 的大作中提到】 : Linux下我用的cmake,最后编译成一个 .so : 貌似没问题,只要是同一个版本的python : Windows下用Visual Studio编译成一个 .pyd (就是dll啊) : 本机运行没问题,upload到pypi上再pip install就不行了,即便是开发pyd的那台机器 : 也一样不行。后来一查,还需要把十来个vc++的dll以及python39.dll一起打包
|