由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - python这是行为艺术?
进入Programming版参与讨论
1 (共1页)
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一起打包

1 (共1页)
进入Programming版参与讨论