V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  chaoschick  ›  全部回复第 8 页 / 共 20 页
回复总数  388
1 ... 4  5  6  7  8  9  10  11  12  13 ... 20  
阿里云
354 天前
回复了 BrJfUsTD 创建的主题 Chrome Chrome 默认拦截 http 下载有办法解决吗?
Chrome 浏览器能对当前网站开启允许不安全 就像是运行运行 JavaScript 脚本一样
Chrome 的 flags 里还有个配置项允许原本只能在 https 下使用的接口在 http 下也能使用
向日葵吧
将 Python 项目打包成一个动态链接库( DLL )可以通过使用 py2dll 或者 PyInstaller 配合一些手动操作来完成。

首先,确保 Python 项目中的所有依赖项都已经被安装并且可以在项目中导入。

接下来,您可以使用 PyInstaller 将 Python 脚本打包成单一的可执行文件,PyInstaller 有一个选项--onefile ,能够将所有的依赖项打包到一个文件中,包括 Python 解释器和所有库文件。

PyInstaller 不能直接生成 DLL ,但您可以首先生成一个 EXE ,然后将其转换为 DLL 。对于转换,这通常需要手动操作以及对 C/C++的理解,因为您可能需要编写一些额外的代码来导出 DLL 的符号。

这里是一个高级概览的步骤:

1. 使用 PyInstaller 将 Python 项目打包成 EXE:
pyinstaller --onefile your_script.py

使用--onefile 选项打包您的脚本及其所有依赖项。

2. 创建 C/C++的包装器代码,这代码会作为 DLL 对外提供接口,并内部调用 Python 解释器执行您的 Python 代码。

3. 编译这个 C/C++代码到 DLL ,链接上一步创建的可执行文件包含的静态库或者动态库。

4. 确保 Python 运行环境(如 Python 解释器和所需的库文件)对 DLL 是可见的,可以通过添加环境变量或者将它们放置在预定的目录。

注意:这是一个比较复杂的过程,需要一定的编程和操作系统内部工作机制的知识,如果您不熟悉这些概念,那么建议寻求更专业的帮助或者使用其他解决方案。

此外,您还可以考虑使用 Cython 来编译 Python 代码为 C 代码,然后生成 DLL ,但这通常需要您的代码适应 Cython 的一些限制。

对于静态打包所有 Python 依赖到一个 DLL 文件,目前没有一个标准的解决方案,通常需要一些定制和手工操作。可以考虑打包你的 Python 环境和脚本到一个虚拟环境中,然后将整个虚拟环境连同生成的 DLL 一起分发。
360 天前
回复了 congu 创建的主题 职场话题 幼稚青年茫然不知所措,急求前辈指点
@jones2000 赞同 一切为了生存
以前我一直以为编译器优化能提升的性能很小,这次真是长见识了
@diivL #include <sys/time.h>
#include <stdio.h>

int main(int argc, char* argv[]) {
struct timeval start_time, end_time;

gettimeofday(&start_time, NULL);

long count = 2147483640;
long i = 0;

do {
++i;
} while (--count);

gettimeofday(&end_time, NULL);

int total_time = 1000000 * (end_time.tv_sec - start_time.tv_sec) + (end_time.tv_usec - start_time.tv_usec);
printf("%d us", total_time);
printf("\n");
printf("%.3f ms", (double) total_time / 1000);
printf("\n");

printf("%l", i);
return 0;
}
[admin@iZt4ngr7j75qbzgg9ilsifZ c]$ gcc duff2.c -O3 && ./a.out
1 us
0.001 ms

这是优化掉 for 循环了吗?
@diivL [admin@iZt4ngr7j75qbzgg9ilsifZ c]$ gcc duff2.c -O3 && ./a.out
3688484 us
3688.484 ms
public class DuffDevice {

private static long duff2(long count) {
long i = 0;
do {
++i;
} while (--count >0);
return i;
}

public static void main(String[] args) {
long duff;
long start, end;
DuffDevice duffDevice = new DuffDevice();

start = System.currentTimeMillis();
duff = duff2((long) Integer.MAX_VALUE - 7);
end = System.currentTimeMillis();
System.out.println(duff + " " + (end - start) + " ms");
}
}

输出
2147483640 639 ms

我改了一下 i 值的类型 耗时 变长了
所以 应该没把循环优化掉吧
@tool2d [admin@iZt4ngr7j75qbzgg9ilsifZ c]$ cat duff2.c
#include <sys/time.h>
#include <stdio.h>

int main(int argc, char* argv[]) {
struct timeval start_time, end_time;

gettimeofday(&start_time, NULL);

long count = 2147483640;
volatile long i = 0;

do {
++i;
} while (--count);

gettimeofday(&end_time, NULL);

int total_time = 1000000 * (end_time.tv_sec - start_time.tv_sec) + (end_time.tv_usec - start_time.tv_usec);
printf("%d us", total_time);
printf("\n");
printf("%.3f ms", (double) total_time / 1000);
printf("\n");

printf("%l", i);
return 0;
}
[admin@iZt4ngr7j75qbzgg9ilsifZ c]$ gcc duff2.c && ./a.out
4621705 us
4621.705 ms
@tool2d 我试试
@xtreme1 能解释一下为什么两者性能如此悬殊的原因吗
2023-12-22 18:51:21 +08:00
回复了 jiaomeng 创建的主题 OpenAI 文心一言只会废话,不能解决问题
不止废话 还没有上下文
2023-12-22 18:47:20 +08:00
回复了 anything66 创建的主题 问与答 怎么过去忘掉过去几年受过的伤害,背刺事件
塞翁失马焉知非福
2023-12-22 08:26:50 +08:00
回复了 monkeyWie 创建的主题 JetBrains 我吐了, IDEA 新版本真的坑死人
2023.1 路过
2023-12-22 08:09:56 +08:00
回复了 Whiplash55 创建的主题 投资 突然意识到一些认知以外的挣钱方式,请各位指导一下
实际尝试一下 亏了的话就当买个教训 不要留下遗憾 出事时能及时止损抽身离开就好
2023-12-22 07:50:28 +08:00
回复了 hypoxia001 创建的主题 问与答 请问有 虚拟短信 这种服务或者平台吗
我司提供这种服务 但价格略贵
2023-12-22 07:47:17 +08:00
回复了 dai269619118 创建的主题 程序员 想找一个自动生成视频的 api
有网站已经做出来了 api 就不知道有没有了
2023-12-22 07:42:16 +08:00
回复了 LittleDust 创建的主题 编程 你每天编程多久?
8h
1 ... 4  5  6  7  8  9  10  11  12  13 ... 20  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2861 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 30ms · UTC 12:46 · PVG 20:46 · LAX 04:46 · JFK 07:46
Developed with CodeLauncher
♥ Do have faith in what you're doing.