I'm having a problem to install PycURL on the following environment
Environment
Python 3.7.0
Windows 10
Run Code Online (Sandbox Code Playgroud)
Problem
C:\>pip install pycurl
Collecting pycurl
Using cached https://files.pythonhosted.org/packages/e8/e4/0dbb8735407189f00b33d84122b9be52c790c7c3b25286826f4e1bdb7bde/pycurl-7.43.0.2.tar.gz
Complete output from command python setup.py egg_info:
Please specify --curl-dir=/path/to/built/libcurl
----------------------------------------
Command "python setup.py egg_info" failed with error code 10 in C:\Users\user01\AppData\Local\Temp\pip-install-xrandomx\pycurl\
C:\>
Run Code Online (Sandbox Code Playgroud)
According to the official site ... http://pycurl.io/docs/latest/install.html#official-packages
Currently official PycURL packages are built against the following Python versions:
Run Code Online (Sandbox Code Playgroud)2.7.10 3.2.5 3.3.5 3.4.3 3.5.2 3.6.0
Does it mean I have to uninstall current …
最初,我有一个简单的程序将整个输出打印到控制台。
初始代码仅在控制台中显示输出
import os, subprocess
print("1. Before")
os.system('ver')
subprocess.run('whoami')
print('\n2. After')
Run Code Online (Sandbox Code Playgroud)
在控制台中输出
1. Before
Microsoft Windows [Version 10]
user01
2. After
Run Code Online (Sandbox Code Playgroud)
然后,我决定在保持控制台原始输出的同时,在日志文件(log.txt)上复制一份。
因此,这是新代码。
import os, subprocess, sys
old_stdout = sys.stdout
log_file = open("log.txt","w")
sys.stdout = log_file
print("1. Before") # This appear in message.log only, but NOT in console
os.system('ver') # This appear in console only, but NOT in message.log
subprocess.run('whoami') # This appear in console only, but NOT in message.log
print('\n2. After') # This appear in message.log only, but NOT …Run Code Online (Sandbox Code Playgroud) 根据此:
在上一节中,我们看到了该
os.system()函数的正常工作。但是不建议您执行Shell命令。我们将使用Python子进程模块执行系统命令。
作者从没os.system()在他/她的帖子中提到为什么不推荐这样做。我可以知道为什么不建议这样做吗?
是否存在任何安全漏洞os.system(),因此不建议执行Shell命令?
我想比较2日期在Python中。但是,以下程序无法正常工作。从输出中可以看到,今天是2019-08-11。不幸的是,即使它实际上是真的,Python仍将其评估为False,对吗?
import datetime
today = datetime.date.today()
day1 = datetime.datetime(2019, 8, 11)
print(f"Today's date is {today}")
if today == day1:
print('today is day1')
else:
print('today is not day1')
Run Code Online (Sandbox Code Playgroud)
输出量
user@linux:~$ py compare2dates.py
Today's date is 2019-08-11
today is not day1
user@linux:~$
Run Code Online (Sandbox Code Playgroud)
该代码出了什么问题,我该如何解决?
这是我的C程序......我试图打印ESP,EBP和EIP.
#include <stdio.h>
int main() {
register int i asm("esp");
printf("%#010x <= $ESP\n", i);
int a = 1;
int b = 2;
char c[] = "A";
char d[] = "B";
printf("%p d = %s \n", &d, d);
printf("%p c = %s \n", &c, c);
printf("%p b = %d \n", &b, b);
printf("%p a = %d \n", &a, a);
register int j asm("ebp");
printf("%#010x <= $EBP\n", j);
//register int k asm("eip");
//printf("%#010x <= $EIP\n", k);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我没有ESP和EBP的问题.
user@linux:~# ./memoryAddress …Run Code Online (Sandbox Code Playgroud) 根据之前的问题,即使IF语句执行的Else语句为TRUE,提供的建议是检查缩进.在我的代码中,缩进似乎是正确的.什么似乎是问题?
根据https://www.tutorialspoint.com/python/python_if_else.htm
else语句可以与if语句结合使用.else语句包含if语句中的条件表达式解析为0或FALSE值时执行的代码块.
根据我的理解,else如果if语句正确/为真,则不应执行.
但是,在这段代码中... else语句仍然被执行..请参阅python myCode.py -i 8.8.8.8
C:\Python>python myCode.py
No Argument Provided
C:\Python>python myCode.py -h
usage: myCode.py [-h] [-u URL] [-i IP]
optional arguments:
-h, --help show this help message and exit
-u URL, --url URL Uniform Resource Locator
-i IP, --ip IP IP Address
C:\Python>python myCode.py -u google.com
~ URL is google.com
C:\Python>python myCode.py -i 8.8.8.8
~ IP Address is 8.8.8.8
No Argument Provided
C:\Python>
Run Code Online (Sandbox Code Playgroud)
这是代码.
import argparse …Run Code Online (Sandbox Code Playgroud) 这是Windows上简单的Python代码.问题是当我按下Ctrl + C时,即使我已经使用pyinstaller将.py转换为.exe,一些代码也会显示在屏幕上
码
C:\code>more test.py
#!/usr/bin/python
print("\n Hello")
input(" Pause ... ")
C:\code>
Run Code Online (Sandbox Code Playgroud)
正常执行
C:\code>python test.py
Hello
Pause ...
C:\code>
Run Code Online (Sandbox Code Playgroud)
执行期间按Ctrl + C ...代码暂停前
C:\code>python test.py
Hello
Pause ... Traceback (most recent call last):
File "test.py", line 4, in <module>
input(" Pause ... ")
KeyboardInterrupt
C:\code>
Run Code Online (Sandbox Code Playgroud)
即使有人在代码执行期间按Ctrl + C,是否可以隐藏此代码?
这是我的示例C代码
user@linux:~$ gdb -q hello
Reading symbols from hello...done.
(gdb)
(gdb) list
1 #include<stdio.h>
2
3 int main()
4 {
5 printf("Hello World!\n");
6 return 0;
7 }
8
Run Code Online (Sandbox Code Playgroud)
这就是汇编代码。
(gdb) disassemble main
Dump of assembler code for function main:
0x000000000000063a <+0>: push %rbp
0x000000000000063b <+1>: mov %rsp,%rbp
0x000000000000063e <+4>: lea 0x9f(%rip),%rdi # 0x6e4
0x0000000000000645 <+11>: callq 0x510 <puts@plt>
0x000000000000064a <+16>: mov $0x0,%eax
0x000000000000064f <+21>: pop %rbp
0x0000000000000650 <+22>: retq
End of assembler dump.
(gdb)
Run Code Online (Sandbox Code Playgroud)
内存地址包含18个字符,其中大多数是数字0。
除了显示所有数字,还可以简化它吗?
让我们 …
我正在尝试1-65535使用URL 验证URL 内的端口号(范围)urlparse.
棘手的部分是如果URL中没有端口号,urlparse(url).port则标识为NoneType
因此,我尝试根据数据类型进行简单的比较,但实际上并没有像您在本示例中看到的那样工作.
如果我NoneType用作数据类型,
elif type(u.port) == NoneType:
Run Code Online (Sandbox Code Playgroud)
我收到了错误
NameError: name 'NoneType' is not defined
Run Code Online (Sandbox Code Playgroud)
我没有使用,validators因为它无法正确验证端口号.
Python:`validators.url`不接受1-9的端口号,但接受大于65535的端口?
TCP/UDP端口号范围从1-65535开始.但是,validators无法识别端口1-9并仍然接受大于的无效端口65535.
码
from urllib.parse import urlparse
def test(url):
global u
u = urlparse(url)
print(' Port : ', u.port)
print(' Data Type : u.port %s\n'% type(u.port))
for url in ['example.com', 'example.com:1', 'http://example.com:1']:
print(url)
test(url)
if type(u.port) == int:
print(' Integer')
elif type(u.port) == None:
print(' …Run Code Online (Sandbox Code Playgroud) 我不禁想知道为什么Python生成的ELF与原始源代码相比相当大.让我们来看看最简单的代码,hello world.
user@linux:~/Python$ cat hello.py
print('Hello, World!')
user@linux:~/Python$
Run Code Online (Sandbox Code Playgroud)
使用pyinstaller转换为ELF
user@linux:~/Python$ pyinstaller -F hello.py
48 INFO: PyInstaller: 3.4
49 INFO: Python: 3.6.7
50 INFO: Platform: Linux-4.15.0-38-generic-x86_64-with-Ubuntu-18.04-bionic
50 INFO: wrote /home/user/Python/hello.spec
53 INFO: UPX is not available.
54 INFO: Extending PYTHONPATH with paths
['/home/user/Python', '/home/user/Python']
55 INFO: checking Analysis
60 INFO: Building because _python_version changed
60 INFO: Initializing module dependency graph...
62 INFO: Initializing module graph hooks...
64 INFO: Analyzing base_library.zip ...
3061 INFO: running Analysis Analysis-00.toc
3096 INFO: Caching module hooks... …Run Code Online (Sandbox Code Playgroud) python ×8
python-3.x ×5
c ×3
windows ×3
assembly ×2
argparse ×1
file-pointer ×1
gdb ×1
linux ×1
memory ×1
pycurl ×1
subprocess ×1
winforms ×1
x86 ×1